1
我有一個包含許多列的大型DataFrame。我也有一個較小的DataFrame和兩列 - 稱它們爲'label'和'value',它們都在較大的DataFrame中。我想用較小的DataFrame的'value'列來替換較大的DataFrame的'value'列,對於'label'與較小的DataFrame中的一行相匹配的較大DataFrame的行。使用部分映射更新一列熊貓數據框
邏輯中的for循環條件是:
largeDF = pd.DataFrame([['a',1],['b',2],['c',3],['d',4],['e',5]], columns=['label','value']).set_index('label')
smallDF = pd.DataFrame([['d',6],['e',7]], columns=['label','value']).set_index('label')
for label in smallDF.index:
largeDF.loc[label,'value'] = smallDF.loc[label,'value']
不幸的
largeDF['value'] = smallDF['value']
答案顯然不起作用,因爲它的NaN不在小DF的標籤。使用.map()也有類似的問題。
我使用的for循環看起來非常unpythonic,unpandas和緩慢。我錯過了什麼更好的做法呢?