0
我有兩隻大熊貓DataFrames:合併結果是錯誤的
df1:
cid day total_count
0 2 2017-06-01 1
1 2 2017-03-04 1
2 1 2017-04-07 1
3 4 2017-06-25 1
4 5 2017-03-18 2
4 3 2017-03-18 2
4 1 2017-03-18 2
4 5 2017-03-18 2
df2 = pd.DataFrame(columns=["cid","pid","lat","lon"], data=[[1,1,41.485731,3.2409], [2,2,41.49206,3.22573],[3,3,41.494026,3.22354],[4,4,41.495904,3.14504],[5,5,41.50271,3.12575]])
我只想兩列lat
和lon
從表df2
添加到表df1
。
我試圖做這樣說:
result = pd.merge(df1, df2, left_on='cid', right_index=True, how='left', sort=False)
但我得到一個錯誤的結果(result.head()
):
cid_x day total_count cid_y pid lat lon
0 2 2017-06-01 1 1.0 1.0 41.475215 3.23462
1 2 2017-03-04 1 1.0 1.0 41.501326 3.41505
2 1 2017-04-07 1 2.0 2.0 41.484948 3.34780
3 4 2017-06-25 1 5.0 5.0 41.492983 3.43865
4 5 2017-03-18 1 3.0 3.0 41.502776 3.35977
首先,我不明白爲什麼我得到兩列cid_x
和cid_y
而不是cid
?其次,我誤解爲什麼cid_x
和cid_y
的值對於每一行都不相同? merge
命令不應該合併來自df1
和df2
的行,根據cid
?
我試圖顯示基於虛擬數據的問題。
看到鏈接https://開頭的大熊貓。 pydata.org/pandas-docs/stable/merging.html 也許試試'pd.merge(df1,df2,on ='cid',how ='left',sort = False)' – Wen