pandas 多重列名 KeyError报错

 

df = pd.DataFrame({'col1':[np.NaN,2,3,4],'col2':[2,np.NaN,4,5],'col3':[3,4,5,6]})
df.columns = [['col','col','col'],['col1','col2','col3']] 
df['xxx']['col'] = [22,2,22,2] ## 居然会报错

KeyError: 'xxx'

原因如下:

pandas 多重列名 KeyError报错

https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy

 

所以你可以用

df.loc[:,('xxx','col')] = [22,2,22,2]

代替

 

看不懂原因的可以私我!!!虽然我不一定回