Значения NaN при выборе определенных столбцов - PullRequest
0 голосов
/ 20 сентября 2019

В настоящее время пытаюсь собрать некоторые знания в области науки о данных с помощью Pandas и Matplotlib.

что я хочу сделать
Выберите группы соседей с соответствующей ценой для аренды частных комнат (AirBnB)

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

    ap_df = pd.DataFrame()

for neighbourhood_group in df['neighbourhood_group'].unique():
    nbhg_df = df.copy()[df['neighbourhood_group']==neighbourhood_group]
    nbhg_df[f"{neighbourhood_group}_Price"] = nbhg_df['price']
    nbhg_df.set_index("id", inplace=True)
    nbhg_df.sort_index(inplace=True)
    if ap_df.empty:
        ap_df = nbhg_df[[f"{neighbourhood_group}_Price"]]
    else:
        ap_df = ap_df.join(nbhg_df[f"{neighbourhood_group}_Price"])

ap_df

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

1 Ответ

0 голосов
/ 20 сентября 2019

Так что я думаю, что могу помочь вам с другим более простым и рабочим примером, который соответствует вашим потребностям

import pandas

df = pandas.DataFrame({
    'id': [1, 2, 3],
    'cat': ['cat_1', 'cat_2', 'cat_3'],
    'price': [1, 2, 3]
})

df.set_index(df['id'], drop=True, inplace=True)
new_df = pandas.DataFrame(index=df.index)

for var in df['cat'].unique():
    new_df[f'{var}_price'] = df[df['cat'] == var]['price']


new_df

Вывод:

    cat_1_price   cat_2_price   cat_3_price
id          
1    1.0             NaN             NaN
2    NaN             2.0             NaN
3    NaN             NaN             3.0

...