이와 같이 병합하려면 DataFrame의 update
메서드가 유용합니다.
documentation에서 예제를 촬영 :
import pandas as pd
import numpy as np
df1 = pd.DataFrame([[np.nan, 3., 5.], [-4.6, np.nan, np.nan],
[np.nan, 7., np.nan]])
df2 = pd.DataFrame([[-42.6, np.nan, -8.2], [-5., 1.6, 4]],
index=[1, 2])
데이터 update
전과 :
>>> df1
0 1 2
0 NaN 3.0 5.0
1 -4.6 NaN NaN
2 NaN 7.0 NaN
>>>
>>> df2
0 1 2
1 -42.6 NaN -8.2
2 -5.0 1.6 4.0
하자 갱신 df1
를 데이터 df2
에서 :
df1.update(df2)
업데이트 후 데이터 :
>>> df1
0 1 2
0 NaN 3.0 5.0
1 -42.6 NaN -8.2
2 -5.0 1.6 4.0
비고 :
- 그것은이
update
를 호출하는 DataFrame을 수정, "대신"작업 것을 알 것이 중요합니다.
나는 이것이 정말로 내가 원하는 것, 감사합니다. – saroele
'combine_first'에는 몇 가지 30k 행의 세 가지 데이터 프레임을 결합하여 각 메모리를 추월하는 데 문제가 있습니다. 이 주변의 어떤 방법? – scry
이 기능이 선택적 인수'join = 'outer'' (현재는'left' 만 구현 됨)가있는'df.update'-function의 일부인 경우 훨씬 더 직관적이라고 생각합니다. 필자의 경우'df1'에서 계산 한'df2'는'df1'보다 훨씬 적은 수의 열을 가지고 있습니다 (그러나'df1'에없는 열). 가능한 경우 계산 된 값으로'df1'을 업데이트하고 싶습니다 플러스 추가 열. 이를 위해,'df1.update (df2, join = 'outer')'는'df1 = df2.combine_first (df1)'보다 훨씬 이해하기 쉽다고 생각합니다. PS. 이것은 사소한 일이지만, 그렇지 않으면'팬더'는 거의 독점적으로 굉장합니다! =) – Axel