我想根据几个索引将每一行拆分为新的列:
6ABCDE0218594STRING
到
6 ABCDE 021 8594 STRING
似乎以前至少有人问过一次,但是我一直在寻找这个问题的变体(如熊猫中那样用定界符分隔:如何将一列中的文本分成多行?,使用分隔成新行而不是新列,再次使用定界符:将pandas dataframe字符串条目拆分为单独的行)。
如果这是重复的事,我提前致歉!
一种方法是使用正则表达式和str.extract拔出列:
In [11]: df = pd.DataFrame([['6ABCDE0218594STRING']])
您可以使用index来完成,所以像这样:
In [12]: df[0].str.extract('(.)(.{5})(.{3})(.{4})(.*)')
Out[12]:
0 1 2 3 4
0 6 ABCDE 021 8594 STRING
或者,您可能会更加谨慎,并确保每一列都是正确的形式:
In [13]: df[0].str.extract('(\d)(.{5})(\d{3})(\d{4})(.*)')
Out[13]:
0 1 2 3 4
0 6 ABCDE 021 8594 STRING
注意:您也可以使用命名组(请参阅docs)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句