如何减少数据框熊猫中的列

时间:2019-02-05 20:24:05

标签: python pandas dataframe

以下是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] 但是它应该根据行而不是列进行过滤,我无法弄清楚。

3 个答案:

答案 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)

使用.where将负值设置为NaN,然后dropna设置axis = 1

df.where(df.gt(0)).dropna(axis=1)

       A  C
total  5  2

答案 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