gpt4 book ai didi

python - 使用 Loop Python Pandas 将数据帧子集化为单独的数据帧

转载 作者:太空宇宙 更新时间:2023-11-04 00:18:34 24 4
gpt4 key购买 nike

我想将数据框子集化为单独的数据框。

所以:

df:

name color value
joe yellow 7.0
mary green 9.0
pete blue 8.0
mary red 8.8
pete blue 7.7
joe orange 2.0

我想得到:

df_joe

name color value
joe yellow 7.0
joe orange 2.0

df_mary

name color value
mary green 9.0
mary red 8.8

df_pete

name color value
pete blue 8.0
pete blue 7.7

这很容易单独和手动完成。但我想在一个循环中或使用 `groupby' 自动执行它。有很多关于如何获取此信息的相关答案,但我发现没有一个讨论将分解的信息保存到多个数据帧。

所以实际上这不是一个重复的问题,因为以下原因:

我试过像这样循环:

names = ['joe','pete','mary']
for name in names
'df_' + name = df[df['Name'] == name]

但是我在将数据帧子集分配给新构造的名称时出错。

我该怎么做?

最佳答案

最好在这里创建 DataFrames 字典 by groupby对象:

dfs = dict(tuple(df.groupby('name')))
print (dfs)
{'joe': name color value
0 joe yellow 7.0
5 joe orange 2.0, 'pete': name color value
2 pete blue 8.0
4 pete blue 7.7, 'mary': name color value
1 mary green 9.0
3 mary red 8.8}

print (dfs['mary'])
name color value
1 mary green 9.0
3 mary red 8.8

但如果真的需要字符串变量(不推荐但可以):

for name, df in df.groupby('name'):
globals()['df_' + name] = df

print (df_mary)
name color value
1 mary green 9.0
3 mary red 8.8

关于python - 使用 Loop Python Pandas 将数据帧子集化为单独的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50003885/

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