熊猫,在多索引列上的fillna

时间:2020-03-02 09:01:43

标签: pandas dataframe

   select t2.ID, case when t2.QTY is NULL then TO_CHAR('Not found') else t2.QTY end "QTY" from TableOnet1 t1 right join Tabletwo t2
on t1.ID = t2.ID where t2.ID in ('A', 'B', 'C')

我想做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

试图在DataFrame的切片副本上设置一个值

请参阅文档中的警告: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

1 个答案:

答案 0 :(得分:0)

我认为inplace不是一个好习惯,请检查thisthis,所以请按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)