我有一個原始資料框:
將熊貓匯入為 pd
df = pd.read_excel("Weights.xlsx", sheet_name='Old')
df:
Name S_Name Height Weight
0 John Wright 5.3 52
1 Seven Taylor 6.4 75
2 Ramsay Sen 7.2 77
我每次都會得到一個包含更新/新資訊的新檔案。例子:
df1 = pd.read_excel("Weights.xlsx", sheet_name='New')
df1:
Name S_Name Height Weight
0 John Wright 5.1 57
1 Seven Taylor 6.3 76
2 Ramsay Sen 7.0 71
3 Radio Mast 5.3 62
4 Randy Stenson 6.4 65
您可以在此處找到使用的檔案
我想保留從for newdf添加新行時的值,以便生成的資料框如下:df1NameS_Name
df_final
Name S_Name Height Weight
0 John Wright 5.3 52
1 Seven Taylor 6.4 75
2 Ramsay Sen 7.2 77
3 Radio Mast 5.3 62
4 Randy Stenson 6.4 65
我想補充一點,兩個檔案的索引每次都不相同。作業流中有一個排序功能,每次都會更改這些值的索引位置。
uj5u.com熱心網友回復:
如果您不能保證索引是對齊的,則需要同時使用and merge(update或者combine_first您不想df1就地修改)
您可以將 DataFrames 與 對齊merge,然后update:
ids = ['Name', 'S_Name']
df1.update(df1[ids].merge(df, how='left'))
print(df1)
輸出:
Name S_Name Height Weight
0 John Wright 5.3 52.0
1 Seven Taylor 6.4 75.0
2 Ramsay Sen 7.2 77.0
3 Radio Mast 5.3 62.0
4 Randy Stenson 6.4 65.0
如果您想要一個新的 DataFrame:
ids = ['Name', 'S_Name']
df_final = df.combine_first(df1[ids].merge(df, how='left'))
print(df_final)
注意。在這兩種情況下,您都需要確保您擁有不重復的合并鍵
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/482324.html
上一篇:轉置和比較|Python
