给出以下df:
df_test = pd.DataFrame({'0' : ['find expert model','NR','R','NR'],
'1' : ["news recommend", "NR" ,"NR", "NR"],
'2' : ["a recommend", "R" , "NR", "NR"],
'3' : ["a web recommend", "R", "NR", "R"]})
df_test
0 1 2 3
0 find expert model news recommend a recommend a web recommend
1 NR NR R R
2 R NR NR NR
3 NR NR NR R
我正在尝试获得这种形式的df:
0 1 2 3
0 NR NR a recommend a web recommend
1 find expert model NR NR NR
2 NR NR NR a web recommend
此处的目标是用特定列第一行中的字符串替换某个单元格中的每个字符串R
。替换过程应从索引为1的行开始。
有什么想法吗?预先感谢!
答案 0 :(得分:2)
使用apply
,replace
和drop
尝试一下:
df_test.apply(lambda x: x.replace('R', x.iloc[0])).drop(0).reset_index(drop=True)
输出:
0 1 2 3
0 NR NR a recommend a web recommend
1 find expert model NR NR NR
2 NR NR NR a web recommend
答案 1 :(得分:2)
尝试一下:
for col in df.columns:
df.loc[df[col] == 'R', col] = df.loc[0, col]
df = df.drop(0)
df.reset_index(drop=True, inplace=True)
结果:
0 1 2 3
0 NR NR a recommend a web recommend
1 find expert model NR NR NR
2 NR NR NR a web recommend