требования для объединения двух фреймов данных Pandas

#python #pandas #dataframe #merge #etl

Вопрос:

Я не знаю, почему я не могу объединить два кадра данных на основе их кода Альфа-3 и кода iso_code, как показано ниже, хотя «» были удалены перед объединением:

 import pandas as pd

vac = pd.read_csv('https://raw.githubusercontent.com/owid/covid-19-data/master/public/data/vaccinations/vaccinations.csv')
world = pd.read_csv('https://gist.githubusercontent.com/tadast/8827699/raw/f5cac3d42d16b78348610fc4ec301e9234f82821/countries_codes_and_coordinates.csv').
 

Результатом, когда я объединился, были просто имена столбцов.

Кто-нибудь может объяснить, пожалуйста?

Ответ №1:

Заглянув внутрь данных, вы заметите, что world df будет содержать кавычки внутри кода Альфа-3:

           Country Alpha-2 code Alpha-3 code Numeric code Latitude (average)  
0     Afghanistan         "AF"        "AFG"          "4"               "33"   
1         Albania         "AL"        "ALB"          "8"               "41"   
2         Algeria         "DZ"        "DZA"         "12"               "28"   
3  American Samoa         "AS"        "ASM"         "16"         "-14.3333"   
4         Andorra         "AD"        "AND"         "20"             "42.5"   

  Longitude (average)  
0                "65"  
1                "20"  
2                 "3"  
3              "-170"  
4               "1.6"  
 

Так что вам захочется избавиться от этого с помощью:

 # note the space is intentional, to get rid of blank spaces
world['Alpha-3 code'] = world['Alpha-3 code'].str.strip(' "')
 

Комментарии:

1. Огромное спасибо. Я использовал replace (» » ,») перед отправкой вопроса, а не strip («»»).