gpt4 book ai didi

python - 计算连续 Pandas 中字符串的出现次数

转载 作者:行者123 更新时间:2023-12-05 09:26:41 24 4
gpt4 key购买 nike

我正在尝试计算 pandas 数据帧中某行中某个字符串的实例数。

在此处的示例中,我使用了 lambda 函数和 pandas .count() 来尝试计算每行中“True”出现的次数。

尽管它不是“True”的计数,而是返回一个 bool 值,无论它是否存在于行中...

#create dataframe 
d = {'Period': [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4],
'Result': ['True','None','False','True','False','True','False','True','True','False','False','True','False','True','False','False'],
'Result1': ['True','None','False','True','False','True','False','True','True','False','False','True','False','True','False','False'],
'Result2': ['True','None','False','True','False','True','False','True','True','False','False','True','False','True','False','False']}
df = pd.DataFrame(data=d)
#count instances of Trus or False in each row
df['Count'] = df.apply(lambda row: row.astype(str).str.count('True').any(), axis=1)
print(df)

期望的结果是:

Period  Result  Result1 Result2 Count
1 True True True 3
2 None None None 0
3 False False False 0
4 True True True 3
1 False False False 0
2 True True True 3
3 False False False 0
... ... ... ... ......

最佳答案

你可以使用np.where:

df['count'] = np.where(df == 'True', 1, 0).sum(axis=1)

关于为什么您的 apply 返回一个 bool 值:两者都是 anyall返回 bool 值,而不是数字

编辑:您可以为多个条件包含df.isin:

df['count'] = np.where(df.isin(['True', 'False']), 1, 0).sum(axis=1)

关于python - 计算连续 Pandas 中字符串的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73557596/

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