如何按列分组并将值_计数应用于另一列

2024-05-23 13:20:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧

^{tb1}$

我知道我通常可以用这样的东西

Q1Q3.groupby('Q1')['Q3'].value_counts().unstack(fill_value=0).reset_index()

但是,当我对每个单元格具有多个值的列进行值计数时,我使用以下代码: pd.Series(Q1Q1['Q3'].str.split(',').sum()).value_counts()

但是我不确定如何在上面的用例中应用它

我还尝试使用下面的代码,但我得到一个ValueError:无法插入值,已经存在

df2 = pd.melt(
    pd.concat([Q1Q3['Q3'],
               Q1Q3.loc[:, "Q1"].apply(
                   lambda series: series.split(',')).apply(pd.Series)], axis=1),
    id_vars='Q3')[['Q3', 'value']]

# Group on gender and rename columns.
result = df2.groupby('Q3')['value'].value_counts().reset_index()
result.columns = ['Q1', 'Q3', 'count']

Tags: 代码indexvalueseriespdsplitresetapply