我在pandas数据框中有一个列,格式为:“A,B,C,D”,我想将它作为列表分割而不是[A,B,C,D]。我使用下面的代码进行转换但是我一直收到以下错误: ValueError:传递值的形状是(58110,3),索引暗示(58110,36)
def convert_list(df):
return df['textlist'].split(',')
df['newcol']= df.apply(lambda x:convert_list(x),axis=1)
答案 0 :(得分:1)
您需要str.split
:
df['newcol'] = df['textlist'].str.split(',')
答案 1 :(得分:1)
设置
df = pd.DataFrame(dict(textlist=['a,b,c,d']))
df
textlist
0 a,b,c,d
df.assign(newcol=df.textlist.str.split(','))
然而,你的功能(只有一个轻微的mod)会像这样工作:
def convert_list(df):
return df['textlist'].str.split(',')
df.assign(newcol=convert_list)
textlist newcol
0 a,b,c,d [a, b, c, d]
你也可以使用numpy的np.core.defchararray.split
df.assign(newcol=np.core.defchararray.split(df.textlist.values.astype(str), ','))
textlist newcol
0 a,b,c,d [a, b, c, d]