为数据框列中的每一行创建一个新变量

Create a new variable for every row in dataframe column

我正在尝试基于现有的 df 列创建一系列变量。示例:

import pandas as pd

dates = {'expiries': ['10','11','13','14']}
expiries = pd.DataFrame(dates)
expiries 

然后我想创建一个新变量(var1 到 var4),为其赋予每一行的值。我知道我可以通过以下方式获得它:

var1 = expiries['expiries'].iloc[0]
var2 = expiries['expiries'].iloc[1]
var3 = expiries['expiries'].iloc[2]
var4 = expiries['expiries'].iloc[3]

但实际上我的 df 是一个可变长度,我需要每行一个变量而不是预先确定(硬编码)的变量数量。

将它们存储在字典中:

var_dict = {}
for i in range(expires.shape[0]):
    var_dict['var' + str(i+1)] = expiries['expiries'].iloc[i]

你有未知数量的变量是违反编码逻辑的

你可以使用 exec

for row in expiries.itertuples():
    idx, value = row
    exec(f'var{idx+1} = {value}')

print(var1, var2, var3, var4)
>>>
10 11 13 14