gpt4 book ai didi

python - Pandas groupby 0 值如果不存在

转载 作者:太空宇宙 更新时间:2023-11-04 02:27:18 26 4
gpt4 key购买 nike

我有这样的代码

frame[frame['value_text'].str.match('Type 2')  | frame['value_text'].str.match('Type II diabetes')].groupby(['value_text','gender'])['value_text'].count()

它返回一个像这样的系列

value_text            gender      count
type 2 M 4
type 2 without... M 4
F 3

我想要的是

 value_text               gender      count
type 2 M 4
F 0
type 2 without... M 4
F 3

我想包括所有性别的计数,即使数据框中没有记录。我该怎么做?

最佳答案

Categorical Data专门为此目的在 pandas 中引入。

实际上,groupby 对分类数据的操作会自动计算笛卡尔积。

与其他函数式方法相比,您应该会看到额外的好处:更低的内存使用量和数据验证。

import pandas as pd

df = pd.DataFrame({'value_text': ['type2', 'type2 without', 'type2'],
'gender': ['M', 'F', 'M'],
'value': [1, 2, 3]})

df['gender'] = df['gender'].astype('category')

res = df.groupby(['value_text', 'gender']).count()\
.fillna(0).astype(int)\
.reset_index()

print(res)

value_text gender value
0 type2 F 0
1 type2 M 2
2 type2 without F 1
3 type2 without M 0

关于python - Pandas groupby 0 值如果不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50078524/

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