这里怎么样在df
数据帧的datalooks:
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]
但它应该过滤的行而不是列,我不出来..
您可以使用,用布尔索引或REINDEX LOC:
df.loc[:, df.columns[(df.loc['total'] > 0)]]
要么
df.reindex(df.columns[(df.loc['total'] > 0)], axis=1)
输出:
A C
0.js 2 1
1.js 3 1
total 5 2
你想用.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