gpt4 book ai didi

python - 要计算每个 'option' 和 'Type' 每年出现的次数,

转载 作者:行者123 更新时间:2023-12-01 22:46:04 26 4
gpt4 key购买 nike

我有以下数据框:

d_f = pd.DataFrame({
'Type': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'],
'count': ['one', 'one', 'two', 'two', 'one', 'one'],
2022: [0, 0, 0.5, 1, 1, 1],
2023: [0, 0.5, 0.5, 1, 1, 1],
2024: [0.5, 0.5, 1, 1, 0, 0],
2025: [1, 0, 0.5, 0.5, 1, 1],
2026: [0, 0.5, 1, 1, 0, 0.5],
'option': [0, 1, 0, 0.5, 1, 0.5]})

我正在尝试根据“类型”中的值计算每个“选项”每年出现的次数。

我使用了以下代码:

table = d_f.pivot_table(index=['Type'], columns='option',aggfunc='count'
).fillna(0)
table

还有这个:

table = d_f.groupby(['option', 'Type'])[2022, 2023, 2024, 2025, 2026].count()
table = table.unstack(level=0).fillna(0)

但遗憾的是,他们都没有返回正确答案。任何建议将不胜感激。

答案应该是这样的:

enter image description here

最佳答案

IIUC,你想要这样的东西:

(d_f.drop(columns='option')
.melt(['Type', 'count'], var_name='year', value_name='option')
.groupby(['Type', 'year', 'option'])['option'].count()
.unstack('year', fill_value=0).unstack('option', fill_value=0)
)

或者:

df2 = (d_f.drop(columns='option')
.melt(['Type', 'count'], var_name='year', value_name='option')
)

out = pd.crosstab(df2['Type'], [df2['year'], df2['option']])

输出:

year   2022         2023         2024         2025         2026        
option 0.0 0.5 1.0 0.0 0.5 1.0 0.0 0.5 1.0 0.0 0.5 1.0 0.0 0.5 1.0
Type
bar 0 0 3 0 0 3 2 0 1 0 1 2 1 1 1
foo 2 1 0 1 2 0 0 2 1 1 1 1 1 1 1

关于python - 要计算每个 'option' 和 'Type' 每年出现的次数,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75487246/

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