1 merge+drop_duplicated(how=left, subset) 如果左表本身就是有重复的 需要先给左表生成一个每行唯一索引 才能实现vlookup的效果
2 对某一列的每一行进行判断赋值 即for i in 行数: df.loc[如果i==?, 某列]= 赋值
其中 如果是在另一列的基础上进行赋值 赋值可以是 df['另一列'].loc[i]+-*/ 也可以直接整列df['另一列']+-*/
例如:
df1_5 = pd.DataFrame(
[list(map(str, range(1,5))), range(1,5)],
index= ['A', 'B']
).T
df1_5.set_index('A', inplace= True)
df1_6 = df1_5.astype(int, copy= True)
df1_7 = df1_6.copy()
df1_7['C'] = df1_6.B
for i in list(map(str, range(1,3))):
df1_7.loc[
df1_6.index== i,
'C'
] = df1_6.B - 10 # 可直接减 也可 df1_6.B.loc[i] - 10
df1_7.drop(columns= 'B')
'''效果一致'''
df1_8 = df1_6.copy()
df1_8['C'] = df1_6.B
for i in list(map(str, range(1,3))):
df1_8.loc[
df1_6.index== i,
'C'
] = df1_6.B.loc[i] - 10
df1_8
如果没有判断而直接赋值 那就直接for i in 行数: df.loc[i, 某列]= 赋值 等效于 df['某列'] = 赋值 (不能用df.某列)
3 替换 "/"替换为None 一定要填写value 否则默认向下填充 replace