我有以下格式的pandas数据框df
Title
ABCABCABC
ABCDABCDABCD
ABCDEABCDEABCDE
ABEABEABE
我想将Title
列分成3个相等的部分。
预期输出:
Title1 Title2 Title3
ABC ABC ABC
ABCD ABCD ABCD
ABCDE ABCDE ABCDE
ABE ABE ABE
请帮助我知道该怎么做。
我尝试获取长度,但不确定如何根据长度值进行分割。
df['len'] = df.Title.str.len()
答案 0 :(得分:5)
使用内置的textwrap
模块。
import textwrap
pd.DataFrame(
[textwrap.wrap(el, len(el)//3) for el in df['Title']]
).add_prefix('Title')
Title0 Title1 Title2
0 ABC ABC ABC
1 ABCD ABCD ABCD
2 ABCDE ABCDE ABCDE
3 ABE ABE ABE
答案 1 :(得分:1)
这是一种方法:
pd.DataFrame([np.split(np.array(list(i)),3) for i in df.Title]).applymap(''.join)
0 1 2
0 ABC ABC ABC
1 ABCD ABCD ABCD
2 ABCDE ABCDE ABCDE
3 ABE ABE ABE