我的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)来做到这一点,但是循环会使我的代码非常慢。还有另一种方法吗?
答案 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