gpt4 book ai didi

python - 如何在 Python 中 reshape 此 DataFrame?

转载 作者:太空宇宙 更新时间:2023-11-03 15:43:42 29 4
gpt4 key购买 nike

我在 Python 中有一个 DataFrame df_sale,我想 reshape 它,计算 price 列的总和并添加一个新的列 total .以下是 df_sale:

b_no  a_id  price  c_id
120 24 50 2
120 56 100 2
120 90 25 2
120 45 20 2
231 89 55 3
231 45 20 3
231 10 250 3

整形后异常输出:

b_no  a_id_1  a_id_2  a_id_3  a_id_4  total  c_id
120 24 56 90 45 195 2
231 89 45 10 0 325 3

到目前为止,我已经尝试过在 df_sale['price'] 上分别对 120 使用 sum() 231。我不明白我应该如何 reshape 数据、添加新的列标题并在计算效率不高的情况下获得总数。谢谢。

最佳答案

这可能不是最干净的方法(根本),但它会得到你想要的结果:

reshaped_df = (df.groupby('b_no')[['price', 'c_id']]
.first()
.join(df.groupby('b_no')['a_id']
.apply(list)
.apply(pd.Series)
.add_prefix('a_id_'))
.drop('price',1)
.join(df.groupby('b_no')['price'].sum().to_frame('total'))
.fillna(0))


>>> reshaped_df
c_id a_id_0 a_id_1 a_id_2 a_id_3 total
b_no
120 2 24.0 56.0 90.0 45.0 195
231 3 89.0 45.0 10.0 0.0 325

关于python - 如何在 Python 中 reshape 此 DataFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51225683/

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