gpt4 book ai didi

python - Pandas for 循环将列复制到单独的数据帧,相应地重命名 df

转载 作者:行者123 更新时间:2023-11-30 22:10:28 26 4
gpt4 key购买 nike

我正在尝试获取一个数据帧,从第二列开始迭代每一列,并将第一个常量列+接下来的列逐一复制到新数据帧。

df = pd.DataFrame({'Year':[2001 ,2002, 2003, 2004, 2005], 'a': [1,2, 3, 4, 5], 'b': [10,20, 30, 40, 50], 'c': [0.1, 0.2, 0.3, 0.4,0.5]})
df

要获得与此输出类似的结果,但我需要它循环,因为我最多可以有 40 列来运行逻辑。

df_a=pd.DataFrame()
df_a=df[['Year', 'a']].copy()
df_b=df[['Year', 'b']].copy()
df_c=df[['Year', 'c']].copy()
print(df_a)
print(df_b)
print(df_c)

如果我知道如何命名 df_['正在复制的列的名称'],那就太好了。非常感谢您,如果重复的话,我们深表歉意。

最佳答案

我建议通过字典理解将其拆分,然后您将拥有单独数据帧的字典。例如:

dict_of_frames = {f'df_{col}':df[['Year', col]] for col in df.columns[1:]}

为您提供 df_adf_bdf_c 字典,您可以像访问任何其他字典一样访问它们:

>>> dict_of_frames['df_a']
Year a
0 2001 1
1 2002 2
2 2003 3
3 2004 4
4 2005 5

>>> dict_of_frames['df_b']
Year b
0 2001 10
1 2002 20
2 2003 30
3 2004 40
4 2005 50

关于python - Pandas for 循环将列复制到单独的数据帧,相应地重命名 df,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51680213/

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