2016-04-07 4 views
1

Ich habe einen großen Pandas DataFrame und eine separate Teilmenge dieses DataFrame mit einem Wert berechnet. Ich möchte die Werte der Teilmenge DataFrame wieder in die größere zusammenführen, ohne einen der anderen Werte zu ändern.Vereinen Sie einen größeren Pandas-Datenrahmen mit spezifischen Werten aus einer Teilmenge

df_large: 
index col_1 col_2 col_3 
1  10 15 33 
2  23 16 nan 
3  33 92 34 
4  132 123 nan 
5  32 59 nan 

Und eine Untergruppe:

df_small: 
index col_1 col_2 col_3 
2  23 16 34 
4  132 123 87 

ich den resultierenden Datenrahmen will, wo die Werte in df_large.col_3 mit Werten in df_small.col_3 überschrieben werden nur der bestimmte Index in df_small existiert:

df_large: 
index col_1 col_2 col_3 
1  10 15 33 
2  23 16 34 
3  33 92 34 
4  132 123 87 
5  32 59 nan 

Ich habe versucht, Merge zu betrachten, aber ich bin mir nicht sicher, wie man das elegant macht.

Antwort

2

eine Art und Weise (unter vielen), es zu tun:

df_large.ix[df_small.index, 'col_3'] = df_small.col_3 

es schneller

In [408]: %timeit df = df_large.combine_first(df_small) 
100 loops, best of 3: 6.45 ms per loop 

In [409]: %timeit df_large.ix[df_small.index, 'col_3'] = df_small.col_3 
100 loops, best of 3: 2.43 ms per loop 
zu combine_first() im Vergleich zu sein scheint
Verwandte Themen