2016-07-27 82 views
2

我有数据帧,它看起来像:如何使用熊猫字符串的索引将列拆分为多个列?

df = pd.DataFrame({"a":["sea001", "seac002"]}) 
print(df) 

     a 
0 sea001 
1 seac002 

我想将一列分为两列,列“B”的前三个字母,其余列“C”

  a b  c 
0 sea001 sea 001 
1 seac002 sea c002 

我想使用df.a.str.split(),但没有选项可以将索引之后的单词分开。我怎样才能巧妙地做到这一点?

回答

2

您可以使用str与切片语义做到这一点:

In [102]: 
df['b'], df['c'] = df['a'].str[:3], df['a'].str[3:] 
df 

Out[102]: 
     a b  c 
0 sea001 sea 001 
1 seac002 sea c002 
1

尝试.str.extract()方法:

In [104]: df[['b','c']] = df.a.str.extract(r'(.{3})(.*)', expand=True) 

In [105]: df 
Out[105]: 
     a b  c 
0 sea001 sea 001 
1 seac002 sea c002