pandas 为每个字符拆分数据框列 [英] Pandas split dataframe column for every character
本文介绍了 pandas 为每个字符拆分数据框列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有多个看起来像这样的数据框列:
i have multiple dataframe columns which look like this:
Day1
0 DDDDDDDDDDBBBBBBAAAAAAAAAABBBBBBDDDDDDDDDDDDDDDD
1 DDDDDDDDDDBBBBBBAAAAAAAAAABBBBBBDDDDDDDDDDDDDDDD
2 DDDDDDDDDDBBBBBBAAAAAAAAAABBBBBBDDDDDDDDDDDDDDDD
3 DDDDDDDDDDBBBBBBAAAAAAAAAABBBBBBDDDDDDDDDDDDDDDD
4 DDDDDDDDDDBBBBBBAAAAAAAAAABBBBBBDDDDDDDDDDDDDDDD
我想要的是每个字符都在一个单独的列中分隔:
What i want is that every character is seperated in a own column:
012345678910111213....
0 DDDDDDDDDDBBBBBBAAAAAAAAAABBBBBBDDDDDDDDDDDDDDDD
1 DDDDDDDDDDBBBBBBAAAAAAAAAABBBBBBDDDDDDDDDDDDDDDD
2 DDDDDDDDDDBBBBBBAAAAAAAAAABBBBBBDDDDDDDDDDDDDDDD
3 DDDDDDDDDDBBBBBBAAAAAAAAAABBBBBBDDDDDDDDDDDDDDDD
4 DDDDDDDDDDBBBBBBAAAAAAAAAABBBBBBDDDDDDDDDDDDDDDD
因此,第一天的第一列"分为48列,并且每一列都具有值A/B/C/D之一
So that "Day 1-Column" is splitted in 48 Columns and every Column has one of the Value A/B/C/D
我尝试了split,但是没有用.
i tried with split, but that didnt work.
推荐答案
您可以调用apply
,对于每个行,请在值的list
上调用pd.Series
:
You can call apply
and for each row call pd.Series
on the the list
of the values:
In [16]:
df['Day1'].apply(lambda x: pd.Series(list(x)))
Out[16]:
0 1 2 3 4 5 6 7 8 9 ... 38 39 40 41 42 43 44 45 46 47
0 D D D D D D D D D D ... D D D D D D D D D D
1 D D D D D D D D D D ... D D D D D D D D D D
2 D D D D D D D D D D ... D D D D D D D D D D
3 D D D D D D D D D D ... D D D D D D D D D D
4 D D D D D D D D D D ... D D D D D D D D D D
[5 rows x 48 columns]
您似乎有尾随空格,请使用str.rstrip
删除它们:
It looks like you have trailing spaces, remove these using str.rstrip
:
df['Day1'] = df['Day1'].str.rstip()
然后执行以上操作
这篇关于 pandas 为每个字符拆分数据框列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文