熊猫替换单元格值以匹配两个数据框之间的索引

时间:2020-08-17 15:42:00

标签: python pandas

我的DataFrame很大,我想更改匹配字段的列值'Final_Status'

#df_full:
EMG Final_Status
G05AT   Fail
G05AZ   Fail
O05AP   Pass
O05AZ   Fail
O15AP   Fail
O51AK   Fail
T05AP   Fail

#df_overwrite:
EMG Final_Status
G05AT   Pass
G05AZ   Pass

#final result:
#df_full:
EMG Final_Status
G05AT   Pass
G05AZ   Pass
O05AP   Pass
O05AZ   Fail
O15AP   Fail
O51AK   Fail
T05AP   Fail

我可以通过遍历较小df的所有行(df_overwrite)来做到这一点,但是循环会使我的代码非常慢。还有另一种方法吗?

2 个答案:

答案 0 :(得分:2)

利用熊猫中的Index来强制对齐,那么您需要update。如果您想将.reset_index()作为一列返回,则可以'EMG'

df_full = df_full.set_index('EMG')
df_overwrite = df_overwrite.set_index('EMG')

df_full.update(df_overwrite, overwrite=True)
print(df_full)

      Final_Status
EMG               
G05AT         Pass
G05AZ         Pass
O05AP         Pass
O05AZ         Fail
O15AP         Fail
O51AK         Fail
T05AP         Fail

答案 1 :(得分:0)

您还可以在此处使用loc(假设EMG是索引):

df_full.loc[df_overwrite.index] = df_overwrite