hhhhqqq1111
2021-03-30 13:31
采纳率: 90.9%
浏览 112
已采纳

如果想对code列中开头为0的字符串添加sz 开头为3和6的数字添加sh该怎么做呢?

笔者现在正尝试用apply()方法进行操作,但因为涉及到首位不同的数值需要添加不同的开头,比如6开头的要在前面加sh,3和0开头的要加sz,就不会了。目前思考的方向有update(),select(),lambda

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • CSDN专家-HGJ 2021-03-30 14:05
    已采纳

    用这个代码试试,这样以其他数字开头的保持原样:df['code']=df['code'].apply(lambda x:'sz'+x if x[0]=='0' else('sh'+x if x[0]=='6' or x[0]=='3' else x))

    print(df)

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 如果只有0 3 6 的情况话 可以试试这样

    data['code'] = ['sz'+ i  if i[0]=='0' else 'sh'+i  for i in data['code']]
    评论
    解决 无用
    打赏 举报
  • hhhhqqq1111 2021-03-30 14:02

    评论
    解决 无用
    打赏 举报
  • hhhhqqq1111 2021-03-30 14:12

    用第二位前辈的方法跑出来了,太感谢两位前辈了,每次都是你们帮助我

    评论
    解决 无用
    打赏 举报
  • 有问必答小助手 2021-03-30 17:33

    您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,欢迎您加入CSDN!

    目前问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    评论
    解决 无用
    打赏 举报
  • 如果除了 0 3 6 还有别的情况, 可以按下面这个格式不断的加if判断

    data['code_re'] = ['sz'+ i  if i[0]=='0' else 'sh'+i  if i[0] in ['3','6'] else i  for i in data['code']]
    评论
    解决 无用 1
    打赏 举报

相关推荐 更多相似问题