【问题标题】:how to assign returned values into a variable using for loop如何使用for循环将返回值分配给变量
【发布时间】:2021-02-23 09:28:13
【问题描述】:

我有一个代码返回数据框中每列的最大值,直到现在它返回正确项目的列表。

我想要的是将每个项目分配给一个变量,该变量是在列表的 for 循环内创建的。

预期结果:

  • var1=item0
  • var2=item1
  • var3=item2

其中 var 是通过列表迭代创建的变量。

如果我运行下面的代码,它会崩溃并返回此错误:

    for i, l in lgdf:
TypeError: cannot unpack non-iterable int object

代码:

import pandas as pd

grouped_df=pd.crosstab(df['year_month'], df['event_type'])
lgdf =   list(grouped_df.max())

i = 0
for i, l in lgdf:
    var[i]=l
print(var)

【问题讨论】:

  • 列表是项目列表的完美存储,为什么您需要单独的变量呢?不过,请参阅此问题以遍历具有索引的列表:stackoverflow.com/questions/522563/…
  • 因为我想在不同的标签中显示每个变量,但我不知道创建了多少变量,所以我想遍历列表
  • 您的代码不完整。 df 是什么,var 声明在哪里?这段代码不会运行。

标签: python pandas list for-loop


【解决方案1】:

虽然我同意@Wups 的评论,即将值存储在列表(或字典)中也可以,但您可以执行以下操作以在 for 循环中创建变量。

for i, l in lgdf:
    exec(f'var_{i} = l')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    • 2019-07-24
    相关资源
    最近更新 更多