如何减少在数据帧大熊猫列

问题描述 投票:7回答:3

这里怎么样在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]但它应该过滤的行而不是列,我不出来..

python pandas dataframe
3个回答
2
投票

您可以使用,用布尔索引或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

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

4
投票

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

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

       A  C
total  5  2
© www.soinside.com 2019 - 2024. All rights reserved.