pandas - 重置分组数据框的索引

标签 pandas

我对一个数据框进行分组,我想用 reset_index() 重置索引。但是,收到错误指示它无法插入列,因为它已经存在。 我了解错误是如何发生的,但不知道如何解决。

d = {'c1':['a', 'a', 'b', 'b', 'c', 'c'], 'c2':['Low', 'High', 'Low', 'High', 'High', 'High']}
dd = pd.DataFrame(data=d)
dd.groupby('c1')['c2'].value_counts(normalize=True).mul(100).reset_index()

返回

c1  c2  
a   High     50.0
    Low      50.0
b   High     50.0
    Low      50.0
c   High    100.0

我想让数据框看起来像这样

c1  c2       percent
a   High     50.0
a   Low      50.0
b   High     50.0
b   Low      50.0
c   High    100.0

如何实现?

最佳答案

您的代码(使用 reindex)实际上在我的系统上失败了,因为其中一个级别与 value_counts 系列同名。

name 尝试 reset_index:

(dd.groupby('c1')['c2']
   .value_counts(normalize=True)
   .mul(100)
   .reset_index(name='percent')
)

输出:

  c1    c2  percent
0  a  High     50.0
1  a   Low     50.0
2  b  High     50.0
3  b   Low     50.0
4  c  High    100.0

关于pandas - 重置分组数据框的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66486545/

相关文章:

python - distplot() 得到了一个意外的关键字参数 'figsize'

python - 如何在pandas数据框中的 `convert_objects`中产生异常

python - 如何根据停止标准对排序的 DataFrame 进行分组?

python - 用新数据框更新数据框,覆盖

python - 数据透视表中的条形图,包含总计和每组聚合的百分比

pandas - 从 Pandas 中的给定索引获取行号

python - 在 pandas 的列匹配中替换另一个数据框中的 NaN 值的正确方法

python - 特定行 Pandas 数据框的总和

python - Pandas:对于列中的查询,创建一个新列,其中这些值的输入 = True,否则为 False

python - 如何使用 to_dict() 创建一个键、值对均为整数的字典?