Python 使用循环编辑数据帧

Python 使用循环编辑数据帧,python,pandas,loops,dataframe,Python,Pandas,Loops,Dataframe,假设我有三个数据帧: df_a = pd.DataFrame({'X':[1,2,3]}) df_b = pd.DataFrame({'X':[1,2,3]}) df_c = pd.DataFrame({'X':[1,2,3]}) 我想做以下工作: df_a['X'] = df_a.X+1 df_b['X'] = df_b.X+1 df_c['X'] = df_c.X+1 如何使用循环而不是单独为每个数据帧执行此操作?例如,您可以执行以下操作: import pandas as pd df_

假设我有三个数据帧:

df_a = pd.DataFrame({'X':[1,2,3]})
df_b = pd.DataFrame({'X':[1,2,3]})
df_c = pd.DataFrame({'X':[1,2,3]})
我想做以下工作:

df_a['X'] = df_a.X+1
df_b['X'] = df_b.X+1
df_c['X'] = df_c.X+1

如何使用循环而不是单独为每个数据帧执行此操作?

例如,您可以执行以下操作:

import pandas as pd
df_a = pd.DataFrame({'X':[1,2,3]})
df_b = pd.DataFrame({'X':[1,2,3]})
df_c = pd.DataFrame({'X':[1,2,3]})

dfs = [df_a, df_b, df_c]
for df in dfs:
    df["X"] = df.X + 1
您还可以使用:

for c in ["a", "b", "c"]:
    tmp = globals()["df_{:}".format(c)]
    tmp["X"] = tmp.X + 1

这就是你要找的吗

df_a = pd.DataFrame({'X': [1,2,3]})
df_b = pd.DataFrame({'X': [1,2,3]})
df_c = pd.DataFrame({'X': [1,2,3]})

frames = [df_a, df_b, df_c]
for frame in frames:
    frame['X'] = frame.X+1

当然!我试过了,但一直这样定义我的列表:
['df_a','df_b','df_c']
。。。愚蠢的XD谢谢你!对。谢谢你的意见。这与David S提供的第一个选项基本相同。对不起,David S-你抢先了我!!