gpt4 book ai didi

python - 将 Pandas DataFrame 列表解包为单独的表格 DataFrame

转载 作者:行者123 更新时间:2023-11-28 21:31:40 25 4
gpt4 key购买 nike

我试图通过一个函数将 df 元组的 pandas 列表转换为单独 DataFrame 的 len 号。我找到了一个由不同动物类型组成的简单示例数据框。我不想以元组格式创建 DataFrame 列表,而是希望将它们推送到单独的 DataFrame 表(不是元组等)中,而不需要一一调用 df 的位置(即 animals[0]) 因为我不知道给定的列表有多长。有什么建议吗?

import pandas as pd

df = pd.DataFrame({'animal': 'cat dog cat fish dog cat cat'.split(),
'size': list('SSMMMLL'),
'weight': [8, 10, 11, 1, 20, 12, 12],
'adult': [False] * 5 + [True] * 2})

我检查 df:

df

animal size weight adult
0 cat S 8 False
1 dog S 10 False
2 cat M 11 False
3 fish M 1 False
4 dog M 20 False
5 cat L 12 True
6 cat L 12 True

然后,我通过按 'animal' 分组,将 df 分成三个较小的 df:

animals = list(df.groupby('animal'))

for a in animals:
print(a, end='\n\n')

('cat', animal size weight adult
0 cat S 8 False
2 cat M 11 False
5 cat L 12 True
6 cat L 12 True)

('dog', animal size weight adult
1 dog S 10 False
4 dog M 20 False)

('fish', animal size weight adult
3 fish M 1 False)

接下来,我验证 Animals 是否确实是一个列表:

type(animals)
list

然后我尝试提取动物列表中的第一项,却发现列表的第一项是元组而不是 DataFrame:

animals[0]

('cat', animal size weight adult
0 cat S 8 False
2 cat M 11 False
5 cat L 12 True
6 cat L 12 True)
type(animals[0])
tuple

有没有办法为猫、狗和鱼推出单独的 DataFrame 表,而不需要一一调用它们?在我的现实应用程序中,我无法预测将从 DataFrame 元组列表中生成的表的数量。

最佳答案

每个元素都是一个键/值 元组,每个键都是作为GroupBy结果的分组键。相反,从 groupby 对象构建一个 tuple,并使用它构建字典:

animals = dict(tuple(df.groupby('animal')))

然后只需通过分组键访问元素即可:

print(animals['cat'])
animal size weight adult
0 cat S 8 False
2 cat M 11 False
5 cat L 12 True
6 cat L 12 True

关于python - 将 Pandas DataFrame 列表解包为单独的表格 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57758949/

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