#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 («»»).