当前位置:   article > 正文

pandas.dataFrame按条件修改列的值(4种方式)_pandas修改某一列的值

pandas修改某一列的值

1.根据单一条件重新赋值

df.loc[df[column1]=='A',['column2']]='B'
  • 1

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])
  • 1
  • 2
  • 3
//方法二  
df[column]=df.apply (lambda x: x.plus[7:] if (df[column1] == 'A')|(df1[column2] == 'B')  else x.column, axis=1)
  • 1
  • 2

方法二也可以可以应用于01编码

//01验证  
df['01验证'] = df.apply(lambda x:1 if x == A  else 0)
  • 1
  • 2

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

4.更多的对应值(直接使用表联接 类似于EXCEL的VLOOKUP功能)

直接使用表联接 类似于EXCEL的VLOOKUP功能
df1:

辅助列对应值
中芯国际¥56
兆易创新¥300
北方华创¥370
五粮液¥200
宁德时代¥500

df0:

行业辅助列
芯片中芯国际
芯片兆易创新
芯片北方华创
饮料五粮液
电池宁德时代
#读取辅助表
df1 = pd.read_excel('辅助.xlsx',header=0)
df = pd.merge(df0,df1[:,['辅助列','对应值']],how='left',on = '辅助列')
  • 1
  • 2
  • 3

df:

行业辅助列对应值
芯片中芯国际¥56
芯片兆易创新¥300
芯片北方华创¥370
饮料五粮液¥200
电池宁德时代¥500

以上是针对列值修改积累的一些方法,希望可以帮助到大家,有未涉及到的地方可以留言补充,谢谢!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/635099
推荐阅读
相关标签
  

闽ICP备14008679号