pandas.dataFrame按条件修改列的值(4种方式) |
您所在的位置:网站首页 › 表格里面替换某一列的字内容 › pandas.dataFrame按条件修改列的值(4种方式) |
根据条件对另一列的值进行修改
1.根据单一条件重新赋值2.多个条件,两种对应值3.两种以上对应值4.更多的对应值(直接使用表联接 类似于EXCEL的VLOOKUP功能)
1.根据单一条件重新赋值
df.loc[df[column1]=='A',['column2']]='B'
2.多个条件,两种对应值
如果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) 3.两种以上对应值这个时候就运用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 0 df['column']=df.apply(label,axis=1) 4.更多的对应值(直接使用表联接 类似于EXCEL的VLOOKUP功能)直接使用表联接 类似于EXCEL的VLOOKUP功能 df1: 辅助列对应值中芯国际¥56兆易创新¥300北方华创¥370五粮液¥200宁德时代¥500df0: 行业辅助列芯片中芯国际芯片兆易创新芯片北方华创饮料五粮液电池宁德时代 #读取辅助表 df1 = pd.read_excel('辅助.xlsx',header=0) df = pd.merge(df0,df1[:,['辅助列','对应值']],how='left',on = '辅助列')df: 行业辅助列对应值芯片中芯国际¥56芯片兆易创新¥300芯片北方华创¥370饮料五粮液¥200电池宁德时代¥500以上是针对列值修改积累的一些方法,希望可以帮助到大家,有未涉及到的地方可以留言补充,谢谢! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |