python - pandas - 拆分文本列,没有分隔符到多列

时间:2016-04-08 20:18:52

标签: python pandas

我们采用以下示例DataFrame

import pandas as pd
df = pd.DataFrame([['foo', 2348], ['bar', 6132], ['baz',5843]], columns = list('ab'))

     a     b
0  foo  2348
1  bar  6132
2  baz  5843

我希望得到以下结果,其中b列中的所有数字被拆分。

     a  b  c  d  e
0  foo  2  3  4  8
1  bar  6  1  3  2
2  baz  5  8  4  3

2 个答案:

答案 0 :(得分:2)

您可以将类型转换为str,然后apply list来制作字符列表,然后构建Series,这样它就会返回一个df,你可以添加回新列:

In [13]:
df[['b','c','d','e']] = df['b'].astype(str).apply(lambda x: pd.Series(list(x))).astype(int)
df

Out[13]:
     a  b  c  d  e
0  foo  2  3  4  8
1  bar  6  1  3  2
2  baz  5  8  4  3

答案 1 :(得分:0)

您可以使用indexing with str

#convert column b to string
df['b'] = df.b.astype(str)

#indexing with str
df['c'] = df.b.str[1]
df['d'] = df.b.str[2]
df['e'] = df.b.str[3]
df['b'] = df.b.str[0]

#if need convert columns to int
df[['b','c','d','e']] = df[['b','c','d','e']].astype(int)
print df
     a  b  c  d  e
0  foo  2  3  4  8
1  bar  6  1  3  2
2  baz  5  8  4  3