Python - Использование значений данных в кадре для присвоения имён новых данных. - PullRequest
0 голосов
/ 09 июня 2018

У меня есть фрейм данных под названием «население», который выглядит следующим образом -

Index   Name      Pop
0      Mumbai    100000
1      Delhi    233299

...

Я хочу создать фреймы данных с именами «Мумбаи», «Дели» ,.... Итак, я закодировал это -

npop = len(population)   #number of popuation centres

    for i in np.arange(0,npop):
        population[i]["Name"] = pd.DataFrame(index = pd.date_range('2016-01-01 00:00:00','2017-01-01 00:00:00', freq ='H').tolist(),columns = ['Susceptible','Exposed','Infected','Removed'])  #Create a blank dataframe
        population[i]['Name'][0]['Susceptible'] = population.iloc[i][0]  #Sets Current population to Susceptible

Как вы можете видеть, я пытаюсь создать пустой кадр данных с 4 столбцами, чей индекс является заданным диапазоном даты и времени. Затем я хочу установитьзначение этого города в ячейке первой строки столбца Susceptible value в новом фрейме данных.

1 Ответ

0 голосов
/ 09 июня 2018

Я считаю, что нужно заполнить каждый DataFrame в цикле на groupby столбца Name, наконец получить dictionary of DataFrame s:

dfs = {}
for i, x in df.groupby('Name'):
    dfs[i] = pd.DataFrame({'Susceptible': x['Pop'].iloc[0]}, 
                          index = pd.date_range('2016-01-01 00:00:00','2017-01-01 00:00:00', freq ='H'),
                columns = ['Susceptible','Exposed','Infected','Removed'])  

#print (dfs)

print (dfs['Mumbai'])

РЕДАКТИРОВАТЬ:

При необходимости создайте только первое значение:

dfs = {}
for i, x in df.groupby('Name'):
    dfs[i] = pd.DataFrame(index = pd.date_range('2016-01-01 00:00:00','2017-01-01 00:00:00', freq ='H'),
                columns = ['Susceptible','Exposed','Infected','Removed'])  #Create a blank dataframe
    dfs[i].loc[dfs[i].index[0], 'Susceptible'] = x['Pop'].iloc[0]

print (dfs['Mumbai'].head())
                   Susceptible Exposed Infected Removed
2016-01-01 00:00:00      100000     NaN      NaN     NaN
2016-01-01 01:00:00         NaN     NaN      NaN     NaN
2016-01-01 02:00:00         NaN     NaN      NaN     NaN
2016-01-01 03:00:00         NaN     NaN      NaN     NaN
2016-01-01 04:00:00         NaN     NaN      NaN     NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...