问题:根据列表索引选择熊猫行
我有一个数据框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
如何或什么功能可以做到这一点?
回答 0
List = [1, 3]
df.ix[List]
应该做的把戏!当我用数据帧建立索引时,我总是使用.ix()方法。它是如此容易和灵活…
UPDATE 
这不再是可接受的索引编制方法。该ix方法已弃用。使用.iloc基于整数索引和.loc基于标签索引。
回答 1
您还可以使用iloc:
df.iloc[[1,3],:]如果由于先前的计算,如果数据框中的索引与行的顺序不对应,则此方法将无效。在这种情况下,请使用:
df.index.isin([1,3])…如其他回应所建议。
回答 2
回答 3
对于大型数据集,通过skiprows参数仅读取选定的行会节省内存。
例
pred = lambda x: x not in [1, 3]
pd.read_csv("data.csv", skiprows=pred, index_col=0, names=...)
现在,这将从文件中返回一个DataFrame,该文件将跳过除1和3之外的所有行。
细节
从文档:
skiprows:类似于列表或整数或可调用的列表,默认None…
如果可调用,则将针对行索引评估可调用函数,如果应跳过该行,则返回True,否则返回False。有效的可调用参数的一个示例是
lambda x: x in [0, 2]
	声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。


