选择特定列时的 NaN 值

目前正在尝试使用 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

http://img2.mukewang.com/62986b6b0001abed05970341.jpg

jeck猫
浏览 118回答 1
1回答

米琪卡哇伊

所以我想我可以用另一个更简单、更有效的例子来帮助你满足你的需要import pandasdf = 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_priceid          1    1.0             NaN             NaN2    NaN             2.0             NaN3    NaN             NaN             3.0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python