为数据框列中的每一行创建一个新变量
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
我正在尝试基于现有的 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