我有一个包含 2000 列的稀疏表,我想选择一些特定的行及其非零值。我该怎么做?
id name e1 e2 e3 e4 . . e550 . . e1200 . e1760. . e2000
1 engine1 0 0 0 2322 1300 140 0
2 engine2 0 0 1230 0 0 2100 0
.
.
.
998000
df[df.name==engine2 & ? ]
id name e3 e1200
2 engine2 1230 2100
and
df[df.name==engine1 & ? ]
id name e4 e550 e1760
1 engine1 2322 1300 140
您可以过滤两次 - 通过掩码过滤第一行m1
然后按列m2
。
最后一次使用loc http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.loc.html:
m1 = (df['name'] == 'engine2')
m2 = (df[m1] != 0).all()
print (df.loc[m1,m2])
id name e3 e1200
1 2 engine2 1230 2100
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)