首页 > 编程语言 > 详细

python pandas 行转列 一个单元格多个字符串转成一列

时间:2019-12-25 09:40:02      阅读:432      评论:0      收藏:0      [点我收藏+]
def row_to_col(df,key,value): #key 列名,value 需要转列的字段
    df_left = df[[key]]
    df_values = df[value].str.split(", |,",expand=True)#expand=True单独成列,修改你的分隔符号
    df_stack =  df_values.stack()#行转列
    df_stack = df_stack.reset_index(level=1,drop=True)#删除第二列索引
    df_right = pd.concat([df_stack],axis=1,keys=(value,))#给第二列增加列名
    df = pd.merge(df_left,df_right,how=left,left_index=True,right_index=True)#根据索引值进行left join
    df = df.reset_index(level=0,drop=True)#重置索引
    return df

数据如下:
  1.  
    c = {
  2.  
        ‘key‘:[‘a‘,‘b‘],
  3.  
        ‘values‘:[‘A、B‘,‘X、Y、Z‘]
  4.  
    }
  5.  
     
  6.  
    df = pd.DataFrame(c)
  7.  
     
  8.  
    print(df)

python pandas 行转列 一个单元格多个字符串转成一列

原文:https://www.cnblogs.com/cupleo/p/12094741.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!