【发布时间】:2018-02-23 08:55:36
【问题描述】:
我在数据框中有以下数据,并希望从第一次出现的 ; 中拆分出来
df:
IT;3P;J;1;C;A;TO1;A;A;A;I
KR;3P;J;1;C;A;TO1;A;A;A;I
MX;3P;J;1;C;A;TO1;A;A;A;I
NL;3P;J;1;C;A;TO1;A;A;A;I
NZ;3P;J;1;C;A;TO1;A;A;A;I
PH;3P;J;1;C;A;TO1;A;A;A;I
PT;3P;J;1;C;A;TO1;A;A;A;I
RU;3P;J;1;C;A;TO1;A;A;A;I
SG;3P;J;1;C;A;TO1;A;A;A;I
TR;3P;J;1;C;A;TO1;A;A;A;I
US;3P;J;1;C;A;TO1;A;A;A;I
df['itemNew'] = df['item'].str.split(';', 1)[1]
给出错误:ValueError:值的长度与索引的长度不匹配
新列中的预期结果如下:
3P;J;1;C;A;TO1;A;A;A;I
3P;J;1;C;A;TO1;A;A;A;I
3P;J;1;C;A;TO1;A;A;A;I
3P;J;1;C;A;TO1;A;A;A;I
3P;J;1;C;A;TO1;A;A;A;I
3P;J;1;C;A;TO1;A;A;A;I
3P;J;1;C;A;TO1;A;A;A;I
3P;J;1;C;A;TO1;A;A;A;I
3P;J;1;C;A;TO1;A;A;A;I
3P;J;1;C;A;TO1;A;A;A;I
3P;J;1;C;A;TO1;A;A;A;I
试过这个:
df['itemNew'] = ''
df['itemNew'] = df['item'].str.split(';', 1).str[1]
出现警告消息: SettingWithCopyWarning: 试图在 DataFrame 中的切片副本上设置一个值。 尝试改用 .loc[row_indexer,col_indexer] = value
【问题讨论】:
-
试试:
df = df.assign(itemNew=df['item'].str.split(';', 1).str[1]) -
或者只是删除第一行。
标签: python python-3.x pandas split