gpt4 book ai didi

python - 如果总和小于 x,则删除 pandas 的 DataFrame 中的列

转载 作者:太空狗 更新时间:2023-10-30 01:41:28 26 4
gpt4 key购买 nike

我正在尝试创建一个程序,如果该列的总和小于 10,该程序将删除 Panda 数据框中的一列。

我目前有以下解决方案,但我很好奇是否有更 pythonic 的方法来做到这一点。

df = pandas.DataFrame(AllData)
sum = df.sum(axis=1)
badCols = list()
for index in range(len(sum)):
if sum[index] < 10:
badCols.append(index)
df = df.drop(df.columns[badCols], axis=1)

在我的方法中,我创建了一个总和小于 10 的列索引列表,然后我删除了这个列表。有更好的方法吗?

最佳答案

您可以调用sum生成一个 Series 来给出每列的总和,然后使用它来针对您的列数组生成一个 bool 掩码并使用它来过滤 df。 DF 生成代码借用 来自@Alexander:

In [2]:
df = pd.DataFrame({'a': [1, 10], 'b': [1, 1], 'c': [20, 30]})
df

Out[2]:
a b c
0 1 1 20
1 10 1 30

In [3]:
df.sum()

Out[3]:
a 11
b 2
c 50
dtype: int64

In [6]:
df[df.columns[df.sum()>10]]

Out[6]:
a c
0 1 20
1 10 30

关于python - 如果总和小于 x,则删除 pandas 的 DataFrame 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33990495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com