我有兩個來自不同來源的CSV文件,其中包含來自美國各州的數據。我可以將這些文件與縣名的公用密鑰合併到一個數據框中,但這兩個文件使用不同的字符串格式。例如,一個文件 - 「df1」 - 具有「舊金山」,而另一個文件 - 「df2」 - 具有「舊金山縣」。我需要比較兩列,確定匹配,然後爲合併創建一個完全相同的密鑰。例如,如果df1包含「舊金山」,則需要檢查df2中的所有行,確定「舊金山縣」包含「舊金山」,然後在df2中創建一個新的關鍵列,該關鍵列只有「舊金山「。當合並鍵字符串不相同時將兩個CSV文件合併到Python數據框中
這是我試過的。
我會合並數據幀與內部聯接。這兩個CSV文件沒有相同的行數。我相信下面的操作只會返回有匹配的行,這正是我想要的。
merged_df = pd.merge(left=df1, right=df2, left_on="COUNTY", right_on="COUNTY")
我無法創建公用密鑰。以下是我有:
# Create an empty container to store the data
COUNTY_KEY = []
for row in df2['COUNTY']:
if df1['COUNTY'] in df2['COUNTY']:
COUNTY_KEY.APPEND(df1(['COUNTY']))
else:
COUNTY_KEY.append('0')
# Create the key by adding the new data to df2
df2['COUNTY_KEY'] = COUNTY_KEY
我認爲,問題是,我想比較兩個對象 - 在這兩個數據幀全縣變量 - 但我需要的對象內,對它們進行比較在字符串級別。
我已經閱讀了很多關於合併數據框的問題和解答,但是我還沒有發現有人問這個問題 - 當一個普通密鑰存在但是不完全匹配時,我們如何合併兩個數據框?
謝謝你的幫助!