Pandas Dataframe: новый столбец, в котором используется страна, если провинция пуста, в противном случае используется провинция - PullRequest
0 голосов
/ 28 марта 2020

Мясо того, что я пытаюсь сделать, можно увидеть внизу. Вот набор данных, который я использую: https://github.com/CSSEGISandData/COVID-19/blob/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv

Я хочу добавить к ['Names'] данные из ['Province / State'], если это не так пусто, иначе данные из ['Country / Region'].

Я строю интерактивную тепловую карту, используя плотно, и она работает. Но проблема в том, что существует несколько маркеров с именем «Канада» (для каждого из штатов), а Гренландия называется «Дания», потому что в файле CSV «Гренландия» находится в разделе «Штат / провинция», а «Дания» - в разделе «Страна / Регион».

import pandas as pd
import plotly.graph_objects as go
import requests
from datetime import date, timedelta
yesterday = date.today() - timedelta(days=1)


confirmed_url = 'https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv'
deaths_url = 'https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv'
yesterdays_date = yesterday.strftime('%-m/%d/%y') 

confirmed = pd.read_csv(confirmed_url)
deaths = pd.read_csv(deaths_url)
confirmed.iloc[0]['Country/Region'] #Test

for place in deaths[['Province/State','Country/Region']]:
    if place is float:
        deaths_names.append('Country/Region')
    else:
        deaths_names.append('Province/State')

confirmed['Name'] = df(confirmed_names)
deaths['Name'] = df(deaths_names)

1 Ответ

0 голосов
/ 28 марта 2020

Это сработало:

def names_column(frame, lst): #Makes a new column called Name
    for i in range(len(frame)):
        if type(frame['Province/State'][i]) is str:
            lst.append(frame['Province/State'][i])
        else:
            lst.append(frame['Country/Region'][i])
    frame['Name'] = df(lst)

names_column(confirmed, confirmed_names)
names_column(deaths, deaths_names)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...