我有包含 2 列扇区和扇区名称的数据框,我想更新“扇区”=“扇区名称”的值,其中“扇区”为空白
我有以下脚本,但它给出错误“ValueError:无法从重复轴重新索引”
dataFinal.loc[dataFinal['Sector'] == '', 'Sector'] = \
dataFinal.loc[dataFinal['Sector Name'] != '', 'Sector Name']
请帮忙。
请您参考如下方法:
我认为最好的方法是创建唯一索引,然后使用 loc , mask或 where倒置条件:
dataFinal = dataFinal.reset_index(drop=True)
#John Gals dol from comment
dataFinal.loc[dataFinal['Sector'] == '', 'Sector'] = dataFinal['Sector Name']
或者:
m = dataFinal['Sector'] == ''
dataFinal['Sector'] = dataFinal['Sector'].mask(m, dataFinal['Sector Name'])
m = dataFinal['Sector'] != ''
dataFinal['Sector'] = dataFinal['Sector'].where(m, dataFinal['Sector Name'])
示例:
dataFinal = pd.DataFrame({'Sector':['a','ss',''],
'Sector Name':['r','t','y']}, index=[4,4,1])
print (dataFinal)
Sector Sector Name
4 a r
4 ss t
1 y
dataFinal = dataFinal.reset_index(drop=True)
m = dataFinal['Sector'] == ''
dataFinal['Sector'] = dataFinal['Sector'].mask(m, dataFinal['Sector Name'])
print (dataFinal)
Sector Sector Name
0 a r
1 ss t
2 y y
