df.loc[df[column1]=='A',['column2']]='B
如果 column1 符合 A 或 B 条件,对应的’plus’列删除的前 7 个字段
//方法一 'and = &' , 'or = |' , ' not = ~'df[new_column]= df['plus'].map(lambda x: str(x)[7:])df[column]=np.where((df[column1] == 'A')|(df1[column2] == 'B'),df[new_column], df[old_column])
//方法二df[column]=df.apply (lambda x: x.plus[7:] if (df[column1] == 'A')|(df1[column2] == 'B') else x.column, axis=1)
方法二也可以可以应用于 01 编码
//01验证df['01验证'] = df.apply(lambda x:1 if x == A else 0)
这个时候就运用 if elif
def label(df):if df[column] == A:return df['A']elif df[column] == B:return df['B']elif df[column] == C:return df['C']elif df[column] == D:return df['D']else:return 0df['column']=df.apply(label,axis=1)
直接使用表联接 类似于 EXCEL 的 VLOOKUP 功能
df1:
| 辅助列 | 对应值 |
|---|---|
| 中芯国际 | ¥56 |
| 兆易创新 | ¥300 |
| 北方华创 | ¥370 |
| 五粮液 | ¥200 |
| 宁德时代 | ¥500 |
df0:
| 行业 | 辅助列 |
|---|---|
| 芯片 | 中芯国际 |
| 芯片 | 兆易创新 |
| 芯片 | 北方华创 |
| 饮料 | 五粮液 |
| 电池 | 宁德时代 |
#读取辅助表df1 = pd.read_excel('辅助.xlsx',header=0)df = pd.merge(df0,df1[:,['辅助列','对应值']],how='left',on = '辅助列')
df:
| 行业 | 辅助列 | 对应值 |
|---|---|---|
| 芯片 | 中芯国际 | ¥56 |
| 芯片 | 兆易创新 | ¥300 |
| 芯片 | 北方华创 | ¥370 |
| 饮料 | 五粮液 | ¥200 |
| 电池 | 宁德时代 | ¥500 |
以上是针对列值修改积累的一些方法,希望可以帮助到大家,有未涉及到的地方可以留言补充,谢谢!
https://blog.csdn.net/weixin_44363807/article/details/119147370
https://blog.csdn.net/weixin_44363807/article/details/119147370
