python pandas教程 - 根据列表索引选择Pandas行




pandas安装 莫烦python (4)

我有一个数据帧df:

   20060930  10.103       NaN     10.103   7.981
   20061231  15.915       NaN     15.915  12.686
   20070331   3.196       NaN      3.196   2.710
   20070630   7.907       NaN      7.907   6.459

然后我想选择具有列表中指示的某些序列号的行,假设这里是[1,3],然后左:

   20061231  15.915       NaN     15.915  12.686
   20070630   7.907       NaN      7.907   6.459

如何或以何种功能可以做到这一点?


Answers

List = [1, 3]
df.ix[List]

应该做的伎俩! 当我使用数据框索引时,我总是使用.ix()方法。 它更容易,更灵活......

更新这不再是可接受的索引方法。 不推荐使用ix方法。 使用.iloc进行基于整数的索引,使用.loc进行基于标签的索引。


你也可以使用iloc:

df.iloc[[1,3],:]

对于大型数据集,通过skiprows参数仅读取所选行的内存效率。

pred = lambda x: x not in [1, 3]
pd.read_csv("data.csv", skiprows=pred, index_col=0, names=...)

细节

来自docs

skiprows :list-like或integer或callable,默认为None

...

如果是可调用的,则将根据行索引计算可调用函数,如果应该跳过该行则返回True,否则返回False。 有效可调参数的一个例子是lambda x: x in [0, 2]

此功能适用于版本pandas 0.20.0+。 另请参阅相应的问题相关的帖子


这是添加新列的简单方法: df['e'] = e





python pandas