Редактирование фреймов данных с помощью цикла - PullRequest
0 голосов
/ 05 мая 2020

Предположим, у меня есть три фрейма данных:

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

Как я могу сделать это, используя al oop, а не отдельно для каждого фрейм данных?

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Это то, что вы ищете?

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
1 голос
/ 05 мая 2020

Вы можете, например, сделать следующее:

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
...