Python pandas:迭代几个数据帧

时间:2018-03-07 15:16:29

标签: python pandas

我有几十个非常相似的df,我想应用相同的操作。

例如,我想重命名cols:

df.rename(columns={"oldname": "newname"}, inplace=True)

数据框具有所有相同的列名。我想过这样的自动化:

for one_df in list_of_df:
    command = one_df + ".rename(columns={'name': 'newname'}, inplace=True)"
    exec(command)

是否有更体面的熊猫解决方案?

1 个答案:

答案 0 :(得分:1)

根据OP的评论:让我们确保list_of_df是数据框列表,是数据框名称的字符串列表。

df1 = pd.DataFrame(1, columns=list('ABC'))
df2 = pd.DataFrame(2, columns=list('ABC'))

list_of_df = [df1, df2]

不是

df1 = pd.DataFrame(1, columns=list('ABC'))
df2 = pd.DataFrame(2, columns=list('ABC'))

list_of_df = ['df1', 'df2']

如果它们都有相同的列,我倾向于将它们保存在一个数据框中。

df = pd.concat(dict(enumerate(list_of_df))).rename(columns={'name': 'newname'})

然后,您可以使用locxs

分别访问每个
df.loc[0]

df.xs(0)

将返回list_of_df[0]