如何按位置对 Pandas 数据框进行切片?
Posted
技术标签:
【中文标题】如何按位置对 Pandas 数据框进行切片?【英文标题】:How to slice a Pandas Data Frame by position? 【发布时间】:2012-08-14 20:15:53 【问题描述】:我有一个 Pandas 数据框对象,它有 1000 行和 10 列。我只想对数据框进行切片并取前 10 行。我怎样才能做到这一点?我一直在尝试使用它:
>>> df.shape
(1000,10)
>>> my_slice = df.ix[10,:]
>>> my_slice.shape
(10,)
my_slice 不应该是前十行,即。一个 10 x 10 的数据框?我怎样才能得到前十行,这样my_slice
是一个 10x10 的数据框对象?谢谢。
【问题讨论】:
【参考方案1】:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.head.html?highlight=head#pandas.DataFrame.head
df2 = df.head(10)
应该做的伎俩
【讨论】:
【参考方案2】:为方便起见,您也可以这样做:
df[:10]
【讨论】:
这似乎没有为我复制列名。【参考方案3】:df.ix[10,:]
为您提供第 10 行的所有列。在您的情况下,您需要直到第 10 行的所有内容,即df.ix[:9,:]
。请注意,切片范围的右端包含在内:http://pandas.sourceforge.net/gotchas.html#endpoints-are-inclusive
【讨论】:
这是贬义的 .ix 不工作你应该删除它,“df[:10]”就足够了【参考方案4】:我可以看到至少三个选项:
1.
df[:10]
2.使用head
df.head(10)
对于 n 的负值,此函数返回除 最后n行,相当于
df[:-n]
[Source]。
3.使用iloc
df.iloc[:10]
【讨论】:
【参考方案5】:DataFrame[:n]
将返回前 n 行。
【讨论】:
以上是关于如何按位置对 Pandas 数据框进行切片?的主要内容,如果未能解决你的问题,请参考以下文章
使用索引值列表对 pandas 多索引数据框进行切片 [重复]