Panda конвертирует данные в NaN при добавлении в новый DataSet - PullRequest
0 голосов
/ 16 октября 2018

Я пытался извлечь конкретные данные из заданного набора данных и добавить их в новый в определенном наборе организованных столбцов.Я делаю это, читая файл CSV и используя строковую функцию.Проблема в том, что даже если данные извлечены правильно, Pandas добавит второй столбец как NaN, хотя в уязвимой переменной хранятся данные, см. Мой код ниже, есть идеи, как это исправить?

processor=pd.DataFrame()
Hospital_beds="SH.MED.BEDS.ZS"
Mask1=data["IndicatorCode"].str.contains(Hospital_beds)
stage=data[Mask1]
Hospital_Data=stage["Value"]
Birth_Rate="SP.DYN.CBRT.IN"
Mask=data["IndicatorCode"].str.contains(Birth_Rate)
stage=data[Mask]
Birth_Data=stage["Value"]
processor["Countries"]=stage["CountryCode"]
processor["Birth Rate per 1000 people"]=Birth_Data
processor["Hospital beds per 100 people"]=Hospital_Data
processor.head(10)

1 Ответ

0 голосов
/ 16 октября 2018

Проблема в том, что индексы не совпадают.При первоначальном заполнении фрейма данных processor вы используете каждую строку из исходного фрейма данных, который содержал данные о рождаемости.Эти строки отличаются от тех, которые содержат данные больничных коек, поэтому когда вы делаете

processor["Hospital beds per 100 people"] = Hospital_Data

, панды создадут новый столбец, но поскольку для * 1007 нет соответствующих индексов* в processor он будет содержать только нулевые значения.

Вероятно, вы в первую очередь захотите переиндексировать исходные данные, используя код страны и год

data.set_index(['CountryCode','Year'], inplace=True)

Затем вы можете создать представление только интересующих вас индикаторов

indicators = ['SH.MED.BEDS.ZS', 'SP.DYN.CBRT.IN'] dview = data[data.IndicatorCode.isin(indicators)]

Наконец, вы можете pivot на коде индикатора для просмотракаждый индикатор в одной строке

dview.pivot(columns='IndicatorCode')['Value']

Но учтите, что в нем все равно будет много NaN.Это просто потому, что данные больничной койки обновляются очень редко (или, например, на Арубе нет вообще).Но вы можете отфильтровать их по мере необходимости.

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