[英]not able to concatenate two dataframes by multiple columns in pandas
嘗試按公共列合並兩個數據幀時,我得到了 NA 值; 我認為使用pandas.merge
合並兩個 dataframe 很簡單,我應該期望正確的 output; 但我沒有得到正確的 output。這是我所做的:
我目前的嘗試:
import pandas as pd
df1=pd.read_csv("https://raw.githubusercontent.com/adamFlyn/test_rl/main/df1.csv", index_col=0)
df2=pd.read_csv("https://raw.githubusercontent.com/adamFlyn/test_rl/main/df2.csv", index_col=0)
merged_df = df1.merge(df2, how='left', left_on=['ST', 'County_Name'], right_on=['ST', 'County_Name'])
通過這樣做,我想匹配County_Name
, ST
所以通過left
連接合並它們並具有FIPS_Code
列; 但是現在FIPS_Code
變成了NAN
,我確信df1
中的County_Name
可以在df2
中匹配; 我確實手動檢查過,但我不明白為什么FIPS_Code
變成NAN
; 我希望它left
join 因為我希望merged_dataframe
具有與df1
相同的形狀。
任何人都可以指出上面的加入有什么問題嗎? 那是因為數據還是加入在這里不起作用? 有什么想法嗎?
您的 df2 County_Name
列中有空間
df2['County_Name'] = df2['County_Name'].str.strip()
merged_df = df1.merge(df2, how='left', left_on=['ST', 'County_Name'], right_on=['ST', 'County_Name'])
print(merged_df)
ST County_Name Orientation state_x Year state_y FIPS_Code
0 IL Adams Defense Illinois 2015 Illinois 17001.0
1 IL Alexander Defense Illinois 2015 Illinois 17003.0
2 IL Bond Defense Illinois 2015 Illinois 17005.0
3 IL Boone Defense Illinois 2015 Illinois 17007.0
4 IL Brown Defense Illinois 2015 Illinois 17009.0
.. .. ... ... ... ... ... ...
97 IL Whiteside Defense Illinois 2015 Illinois 17195.0
98 IL Will Neutral Illinois 2015 Illinois 17197.0
99 IL Williamson Defense Illinois 2015 Illinois 17199.0
100 IL Winnebago Defense Illinois 2015 Illinois 17201.0
101 IL Woodford Defense Illinois 2015 Illinois 17203.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.