gpt4 book ai didi

python - 迭代使用 "locals": Python 生成的多个数据帧

转载 作者:行者123 更新时间:2023-12-01 08:25:50 25 4
gpt4 key购买 nike

我已将数据帧“df”拆分为较小的数据帧 df1、df2...dfn,以便将具有相同 ID(来自“UNIT-ID”列)的所有记录分组在一起并存储在这些较小的数据帧中。

Input:

UNIT-ID Q1 Q2 Q3
110-P1 37 487 0
110-P1 31 140 1
110-P1 46 214 1
110-P2 29 287 1
110-P2 45 131 1
110-P2 39 260 0
110-15 23 346 0
110-15 31 419 1
110-15 37 287 0
110-15 36 228 1
110-15 48 309 1

Output:
df1:
UNIT-ID Q1 Q2 Q3
110-P1 37 487 0
110-P1 31 140 1
110-P1 46 214 1

df2:
UNIT-ID Q1 Q2 Q3
110-P2 29 287 1
110-P2 45 131 1
110-P2 39 260 0

我使用下面的代码来实现这一点,感谢回答这个问题的@W-B question

variables = locals()
for i,j in enumerate(df.groupby('UNIT-ID')):
variables["df{0}".format(i+1)] = j[1]
df1
Out[13]:
UNIT-ID Q1 Q2 Q3
16 110-15 23 346 0
17 110-15 31 419 1
18 110-15 37 287 0
19 110-15 36 228 1
20 110-15 48 309 1

接下来,我想对每个单独的数据帧运行一些预处理步骤和深度学习模型,现在,这些数据帧 - df1、df2.. dfn 不存储在本地驱动器上的任何位置,但它们具有已创建,如果选中则可以解决。有没有办法迭代这些数据帧?

可以使用“dict”分为 df1, df2...dfn,如下所示,但是使用此选项,我需要将每个 df 保存在物理位置并再次读取,因为 dfs 仍然存储在 dict 中并且必须通过单独调用来提取。有没有办法使用“本地人”或任何其他技术来完成这项任务?

d={"df{0}".format(i+1):j[1]for i,j in enumerate(df.groupby('UNIT-ID'))}
d['df1']
Out[17]:
UNIT-ID Q1 Q2 Q3
16 110-15 23 346 0
17 110-15 31 419 1
18 110-15 37 287 0
19 110-15 36 228 1
20 110-15 48 309 1

最佳答案

您可以尝试迭代所有代码变量,按名称选择“子数据帧”(例如,在其名称中使用诸如 subDf 之类的模式)并他们只是在这些变量中执行一些操作。为了使我的想法更清楚,请运行下面的示例:

variables = locals()
for i,j in enumerate(df.groupby('UNIT-ID')):
variables["subDf{0}".format(i+1)] = j[1]

for each in [v for k,v in variables.items() if 'subDf' in k]:
print(v)

#output:
# UNIT-ID Q1 Q2 Q3
#6 110-15 23 346 0
#7 110-15 31 419 1
#8 110-15 37 287 0
#9 110-15 36 228 1
#10 110-15 48 309 1


# UNIT-ID Q1 Q2 Q3
#0 110-P1 37 487 0
#1 110-P1 31 140 1
#2 110-P1 46 214 1


# UNIT-ID Q1 Q2 Q3
#3 110-P2 29 287 1
#4 110-P2 45 131 1
#5 110-P2 39 260 0

这样,您就可以打印所有子数据帧,而不必将它们保存在其他地方。由于我不确定您到底打算如何处理数据,因此我无法判断这是否是最好的方法。但肯定会迭代您创建的数据框!

关于python - 迭代使用 "locals": Python 生成的多个数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54256818/

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