【问题标题】:pandas, fillna on multiindex columns多索引列上的熊猫,fillna
【发布时间】:2020-03-02 17:05:13
【问题描述】:
index_tuples=[]

for distance in ["near", "far"]:
    for vehicle in ["bike", "car"]:
        index_tuples.append([distance, vehicle])

index = pd.MultiIndex.from_tuples(index_tuples, names=["distance", "vehicle"])
df = pd.DataFrame(index=["city"], columns = index)



d = {(x,y):my_home_city[x][y] for x in my_home_city for y in my_home_city[x]}
df.loc['my_home_city',:]=d
df
Out[994]: 
distance     near       far     
vehicle      bike  car bike  car
city          NaN  NaN  NaN  NaN
my_home_city    1    0    0    1

我想做df['near']['bike'].fillna(False, inplace=True)

它说

试图在数据帧的切片副本上设置值

请参阅文档中的注意事项: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

【问题讨论】:

    标签: pandas dataframe


    【解决方案1】:

    我认为inplace 不是很好的做法,请检查this 和this,因此将选定的列分配回tuple:

    df[('near', 'bike')] = df[('near', 'bike')].fillna(False)
    print (df)
    distance       near       far     
    vehicle        bike  car bike  car
    city          False  NaN  NaN  NaN
    my_home_city      1  0.0  0.0  1.0
    

    但你的解决方案应该改变:

    df[('near', 'bike')].fillna(False, inplace=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-16
      • 2019-01-19
      • 2018-03-25
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      • 1970-01-01
      相关资源
      最近更新 更多