gpt4 book ai didi

Python/Pandas,.count 不适用于较大的数据框

转载 作者:行者123 更新时间:2023-12-01 07:18:01 31 4
gpt4 key购买 nike

我正在尝试计算数据框中 True/False 值的数量,如下所示:

df = pd.DataFrame({'a': [True, False, True],
'b': [True, True, True],
'c': [False, False, True]})
count_cols = ['a', 'b', 'c']
df['count'] = df[df[count_cols] == True].count(axis=1)

enter image description here

此示例运行良好。但是当我在实际的 df (形状 - (25168, 303))上测试它时,我收到以下错误:

我从 - What does `ValueError: cannot reindex from a duplicate axis` mean? 了解到- 当索引中存在重复值并且我尝试了 df.reindex() 和 df[~df.index.duplicated()] 时,通常会发生这种情况,但我仍然收到相同的错误消息。

最佳答案

按列表过滤列并按 sum 计数 True 值 - True 的处理方式与 1 类似:

df['count'] = df[count_cols].sum(axis=1)
print (df)
a b c count
0 True True False 2
1 False True False 1
2 True True True 3

编辑:为了避免错误,一种可能的解决方案是将值转换为 numpy 数组:

df['count'] = np.sum(df[count_cols].values, axis=1)
print (df)
a b c count
0 True True False 2
1 False True False 1
2 True True True 3

关于Python/Pandas,.count 不适用于较大的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57851817/

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