#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
У меня есть следующие фреймы данных,
фрейм данных- 1 (с именем df1)
index A B C
1 q a w
2 e d q
3 r f r
4 t g t
5 y j o
6 i k p
7 j w k
8 i o u
9 a p v
10 o l a
фрейм данных- 2 (с именем df2)
index C
3 a
7 b
9 c
10 d
Я попытался заменить строки для определенных индексов в столбце «C», используя фрейм данных — 2 для фрейма данных — 1, но после использования приведенного ниже кода я получил следующий результат:
df1['C'] = df2
Вывод:
index A B C
1 q a NaN
2 e d NaN
3 r f a
4 t g NaN
5 y j NaN
6 i k NaN
7 j w b
8 i o NaN
9 a p c
10 o l d
Но я хочу что-то вроде этого,
Ожидаемый результат:
index A B C
1 q a w
2 e d q
3 r f a
4 t g t
5 y j o
6 i k p
7 j w b
8 i o u
9 a p c
10 o l d
Очевидно, что мне не нужны значения NaN в столбце «C», вместо этого я хочу, чтобы значения оставались такими, какие они есть. (Я имею в виду, что оно должно меняться только для этого конкретного значения индекса).
Пожалуйста, дайте мне знать решение.
Заранее спасибо!
Комментарии:
1. это
index
индекс или просто обычный столбец?2. Это не столбец, я использовал его для указания значений индекса.
Ответ №1:
Предполагая index
, что это фактический столбец индекса, мы можем сделать loc
:
df1.loc[df2.index, 'C'] = df2['C']
Или еще проще с:
df1.update(df2)
Вывод:
A B C
index
1 q a w
2 e d q
3 r f a
4 t g t
5 y j o
6 i k p
7 j w b
8 i o u
9 a p c
10 o l d
Ответ №2:
Попробуйте это
for idx, row in df2.iterrows():
df1.at[idx, 'C'] = row['C']