gpt4 book ai didi

python - 将元组转换为 Pandas Dataframe 中的多个索引

转载 作者:太空狗 更新时间:2023-10-29 17:45:58 25 4
gpt4 key购买 nike

我从这样的字典开始:

dict = {(100000550L, u'ActivityA'): {'bar__sum': 14.0, 'foo__sum': 12.0},
(100001799L, u'ActivityB'): {'bar__sum': 7.0, 'foo__sum': 3.0}}

当转换为 DataFrame 时,将 (id, activitytype) 的元组作为列标题:

df = DataFrame(dict).transpose()

bar__sum foo__sum
(100000550, ActivityA) 14 12
(100001799, ActivityB) 7 3

如何将索引中的元组转换为 MultiIndex?也就是说,最终结果看起来像这样:

                        bar__sum  foo__sum
id act_type
100000550 ActivityA 14 12
100001799 ActivityB 7 3

执行此操作的最佳方法是什么?我缺少有关 DataFrame 创建的某些选项吗?或者它应该通过列表理解发生,这对我来说效率低下。

最佳答案

如果您想转换索引您的数据框:

>>> df.index = pd.MultiIndex.from_tuples(df.index)
>>> df
bar__sum foo__sum
100000550 ActivityA 14 12
100001799 ActivityB 7 3

>>> df.index.names = ['id', 'act_type']
>>> df
bar__sum foo__sum
id act_type
100000550 ActivityA 14 12
100001799 ActivityB 7 3

您还可以直接从字典创建DataFrame(d 是您的字典,不要调用您的变量dict,因为它会隐藏标准 Python 字典):

>>> pd.DataFrame(d.values(), index=pd.MultiIndex.from_tuples(d.keys(), names=['id', 'act_type']))
bar__sum foo__sum
id act_type
100001799 ActivityB 7 3
100000550 ActivityA 14 12

注意 values()keys()always in the same order ,所以不用担心。

关于python - 将元组转换为 Pandas Dataframe 中的多个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20153039/

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