如何在pandas中互相替换多列

问题描述 投票:1回答:1

现在,我正在做一个分析项目。实际上,我发现有些行数据混乱了。像那样:

  Data in 'Direction' column should be in 'Size' column

  Data in 'Size' column should be in 'Floor' column

  Data in 'Renovation' column should be in 'Direction' 

结果,我需要修改它,即我修改'Direction'和'Renovation',如下所示:

direction = modify_house.Renovation
modify_house.loc[:, 'Direction'] = direction

但是,它会引发错误警告:

/anaconda3/lib/python3.6/site-packages/pandas/core/indexing.py:543: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

那么,如何解决呢?或者在正确的地方制作这些数据的任何方法?谢谢!

pandas dataframe data-analysis
1个回答
1
投票

使用qazxsw poi by dictionary with new和new column names:

rename

编辑:如果想要创建新列或覆盖现有列使用modify_house= pd.DataFrame({'A':list('abcdef'), 'Size':[4,5,4,5,5,4], 'Direction':[7,8,9,4,2,3], 'Renovation':[1,3,5,7,1,0], 'E':[5,3,6,9,2,4], 'F':list('aaabbb')}) print (modify_house) A Size Direction Renovation E F 0 a 4 7 1 5 a 1 b 5 8 3 3 a 2 c 4 9 5 6 a 3 d 5 4 7 9 b 4 e 5 2 1 2 b 5 f 4 3 0 4 b d = {'Direction':'Size', 'Size':'Floor','Renovation':'Direction'} modify_house = modify_house.rename(columns=d) print (modify_house) A Floor Size Direction E F 0 a 4 7 1 5 a 1 b 5 8 3 3 a 2 c 4 9 5 6 a 3 d 5 4 7 9 b 4 e 5 2 1 2 b 5 f 4 3 0 4 b

assign
© www.soinside.com 2019 - 2024. All rights reserved.