Я борюсь с чем-то простым, и это сводит меня с ума.
Почему конкатенация, как показано ниже, не заменяет df1 на df1 + дополнительный столбец?
df1 = pd.DataFrame({'A':[1, 2, 3], 'B':[4, 5, 6]})
df2 = pd.DataFrame({'A':[1, 2, 3], 'B':[4, 5, 6]})
df3 = pd.DataFrame({'C':[999, 999, 999]})
for table in [df1, df2]:
table = pd.concat((table, df3), axis=1)
df1
Спасибо!
[edit] Мне нужно получить отдельно для df1 и df2:
У вас есть два DataFrames. К этим переменным относятся два имени переменной "df1" и "df2". Теперь вы перебираете эти dataFrames в цикле под псевдонимом "table". Внутри цикла "таблица" переназначается на результат concat
. Поскольку concat
не находится на месте, ни один из исходных DataFrames не изменяется.
Мой совет - поддерживать список DataFrames.
df_list = [df1, df2]
Теперь измените список:
for i, df in enumerate(df_list):
df_list[i] = pd.concat([df, df3], axis=1)
df_list
будет отражать обновление, поскольку теперь он будет содержать вновь созданные concat
выходы.
df1, df2 = df_list
print(df1)
A B C
0 1 4 999
1 2 5 999
2 3 6 999
print(df2)
A B C
0 1 4 999
1 2 5 999
2 3 6 999