2016-11-02 1 views
1

У меня есть 2 кадра данных pandas, из которых один из них состоит из измененных выбранных строк первого (у них одинаковые столбцы). Для простоты приведенные ниже иллюстрации иллюстрируют эту проблему.Внедрение модифицированного подкадра в исходное

df1 =     df2 = 
     A B C     A B C 
0  1 2 3   1  20 30 40 
1  2 3 4   3  40 50 60 
2  3 4 5 
3  4 5 6 

Есть ли более эффективный и вещий способ, чем ниже код, чтобы встроить df2 в df1 путем перезаписи значений? (Работа с высокой размерности кадров)

for index, row in df2.iterrows(): 
    df1.ix[index,:] = df2.ix[index, :] 

что приводит:

df1 = 
    A B C 
0 1 2 3 
1 20 30 40 
2 3 4 5 
3 40 50 60 
+1

'df1.update (df2)' должны работать – EdChum

ответ

3

Вы можете использовать update обновить ФР с другим Д.Ф., где метки строк и столбцов согласны значения обновляются, вам нужно будет бросить в int с использованием astype, поскольку DTYPE изменяется плавать из-за недостающих значений:

In [21]: 
df1.update(df2) 
df1 = df1.astype(int) 
df1 

Out[21]: 
    A B C 
0 1 2 3 
1 20 30 40 
2 3 4 5 
3 40 50 60 
+0

большое спасибо. Я проверил его, и это было именно то, что мне нужно. – amin