在熊猫中,每个字符将字符串分成多列

时间:2020-03-18 18:24:29

标签: python pandas

我有一列,其中的字符串代表每月的一系列事件。

str.split方法是理想的选择,但我找不到在每个字符上进行分割的正确模式(正则表达式或其他)。

Col Foo
 BBBAAAAAR

进入

Col Foo_1 | Col Foo_2 | Col Foo_3 | Col Foo_4 ...
B         |B          |B          |A          ...

我目前正在循环执行

for keys, frames in data_frame_dict.items():
   temp1 = frames.Col_Foo.str.split(' ',expand=True).add_prefix('Feat_Mon_') 

然后追加...

这适用于空格,但是我希望一列中的每个字符,现在每个元素之间都没有分隔符。

但是我无法在此处或在文档中找到适用于字符串的方法模式。

编辑: 我已经尝试过使用''作为分隔符,它返回正确数量的列,但是它们全为空。好像是在每个字符上拆分并返回字符之间的空白区域。

2 个答案:

答案 0 :(得分:0)

它们的长度都一样吗?我相信您可以将Col Foo转换为字符串,然后仅逐字符遍历字符串。如果它们的长度相同,则可以将其硬编码为df,而无需循环。 *对不起,本来是评论,但我没有评论代表

答案 1 :(得分:0)

如果要按字符拆分,并且列的类型为object,则只需执行您要执行的操作,但使用空的''而不是' '作为参数到str.split。这会将单词拆分为所有字符。

因此以下代码应该可以工作。

frame['Col Foo'].str.split('',expand=True)