Python:在for循环中将迭代变量的值添加到变量名中

2024-09-30 08:15:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas df,它的列(比如col3)包含一个数字。这些数字在多行中使用,我想分别为每个数字的行运行一个函数。在

所以我把每个数字都写进一个数组中:

l = df.col3.unique()

然后使用for循环为每个数字运行一个函数:

^{pr2}$

因此,该函数获取col3包含每次运行的i值的行。函数返回两个数据帧(本例中为a和b)。 我需要每次运行的这两个返回的数据帧。在

我希望能正确地识别他们。为此,我希望将返回的数据帧保存在循环中,如下所示:

首轮:a123、b123 第二段a456,b456 第三次运行:a789、b789

表示数据帧的名称包含i的当前值

我已经读过我不应该使用全局变量作为动态变量名,但是我不知道如何实现这一点。在

谢谢:)


Tags: 数据函数pandasdffor数字数组col3
1条回答
网友
1楼 · 发布于 2024-09-30 08:15:41

解决方案A(推荐):

dfs = {}

for i in l:
    dfs["a"+str(i)], dfs["b"+str(i)] = func(df[df.col3 == i])
...

然后你可以像这样使用数据帧:

^{pr2}$

解决方案B(不推荐)

如果您绝对想使用局部变量,则需要:

for i in l:
    locals()["a"+str(i)], locals()["b"+str(i)] = func(df[df.col3 == i])

然后可以使用数据帧及其变量名a1b1

相关问题 更多 >

    热门问题