gpt4 book ai didi

python - 在 Pandas 数据框列中存储不同值的最佳方式?

转载 作者:太空宇宙 更新时间:2023-11-04 11:07:11 25 4
gpt4 key购买 nike

我很难找出在 pandas 列中存储关于同一实体的多个数据的最佳或最简单方法,例如,我有一些 pandas 数据框,如下所示:

                a    b     c
item0 2.0 NaN 1.1
item1 1.3 2.2 2.0
item2 1.4 NaN NaN

a b c
item0 foo bar bar
item1 bar foo bar
item2 foo foo bar

我想将这些数据帧值聚合为一个,但我没有成功尝试将它们分配给多索引数据帧,这是我希望得到的:

                                   a                        b                         c
item0 {prop1:2.0, prop2: foo} {prop1:NaN, prop2: bar} {prop1:1.1, prop2: bar}
item1 {prop1:1.3, prop2: bar} {prop1:2.2, prop2: foo} {prop1:2.0, prop2: bar}
item2 {prop1:1.4, prop2: foo} {prop1:NaN, prop2: foo} {prop1:NaN, prop2: bar}

或者

                         a              b              c
prop1 prop2 prop1 prop2 prop1 prop2
item0 2.0 foo NaN bar 1.1 bar
item1 1.3 bar 2.2 foo 2.0 bar
item2 1.4 foo NaN foo NaN bar

是否有一种简单的方法来以这些形式聚合多个数据框?

最佳答案

第二个选项更可取。当您将对象存储在像字典这样的 DataFrame 中时,您会失去很多 pandas 的效率。基本操作也变得更加困难。

由于对齐是在索引上,这只是 concatkeys 参数。如果您想要底部的 prop,则可以交换级别。

res = (pd.concat([df1, df2], axis=1, keys=['prop1', 'prop2'])
.swaplevel(0,1, axis=1)
.sort_index(axis=1))

print(res)
a b c
prop1 prop2 prop1 prop2 prop1 prop2
item0 2.0 foo NaN bar 1.1 bar
item1 1.3 bar 2.2 foo 2.0 bar
item2 1.4 foo NaN foo NaN bar

关于python - 在 Pandas 数据框列中存储不同值的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59165016/

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