我有一个包含 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
Run Code Online (Sandbox Code Playgroud)
和
df[df.name==engine1 & ? ]
id name e4 e550 e1760
1 engine1 2322 1300 140
Run Code Online (Sandbox Code Playgroud)
您可以过滤两次 - 首先按掩码过滤行m1,然后按列过滤m2。最后使用loc:
m1 = (df['name'] == 'engine2')
m2 = (df[m1] != 0).all()
print (df.loc[m1,m2])
id name e3 e1200
1 2 engine2 1230 2100
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5781 次 |
| 最近记录: |