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-你抢先了我!!