以下是df
数据框中的数据外观:
A B C D
0.js 2 1 1 -1
1.js 3 -5 1 -4
total 5 -4 2 -5
然后我将获得新的数据帧df1
:
A C
0.js 2 1
1.js 3 1
total 5 2
所以基本上它应该看起来像这样:
df1 = df[df["total"] > 0]
但是它应该根据行而不是列进行过滤,我无法弄清楚。
答案 0 :(得分:4)
您要使用.loc[:, column_mask]
,即
In [11]: df.loc[:, df.sum() > 0]
Out[11]:
A C
total 5 2
# or
In [12]: df.loc[:, df.iloc[0] > 0]
Out[12]:
A C
total 5 2
答案 1 :(得分:4)
答案 2 :(得分:2)
您可以使用布尔索引或重新索引查找:
df.loc[:, df.columns[(df.loc['total'] > 0)]]
OR
df.reindex(df.columns[(df.loc['total'] > 0)], axis=1)
输出:
A C
0.js 2 1
1.js 3 1
total 5 2