如何将字符串转换为数据帧名称熊猫/python



我有2个数据帧(dfA,dfB(

我有另一个数据帧 dfC,它有一个名为"源"的列。SOURCE 的值可以是 dfA 或 dfB。

我正在尝试在 dfC 上逐行浏览,并根据源字段更新 dfA 或 dfB。

为此,我尝试创建一个变量"a",该变量将采用 SOURCE 的值。问题是,"a 将等于 'dfA' 或 'dfB'(将其读作字符串(。我不能使用此字符串调用正确的数据帧(抛出错误(

for i in [0, len(dfC.index)-1]:
a = dfC.loc[i,'Source']
temp = a[['colA', 'colB', colC']]][(a['movement_id']) == dfC.loc[i,'TEMP']]

只需在循环中使用 if-else;

for ind in range(dfC.shape[0]):
if dfC.loc[ind, 'SOURCE'] == 'dfA':
"do what you want to dfA"
if dfC.loc[ind, 'SOURCE'] == 'dfB':
"do what you want to dfB"

这听起来合理吗?

我建议使用熊猫。DataFrame.update,它基于索引更新数据帧。

dfa = DataFrame([[2],[4]], index=[1,2], columns=['val'])
dfb = DataFrame([[4],[8]], index=[1,2], columns=['val'])
dfc = DataFrame([['dfa',-1],['dfb',-2],['dfa',-3]], index=[1,1,2], columns='dest','val'])
dfa.update(dfc[dfc['dest']=='dfa'])
dfb.update(dfc[dfc['dest']=='dfb'])

通常不鼓励在熊猫中使用 for 循环。

最新更新