将数据框列包装到具有不同长度限制的多列的文本

时间:2019-01-31 16:05:41

标签: python regex textwrapping

我有一个包含多列的数据框,其中最重要的是标题。我需要将此标题划分为多列(假设有4列),并且每4个结果列都有各自的长度限制(column1 = 10个字符,column2 = 15个字符,column3 = 15,column4 = 25)。我研究了使用textwrap进行此操作的方法,但无法确定如何将textwrap应用于数据框。也可以选择一个迭代过程,将完整的字符串拆分成单词,然后重新编译,同时根据约束检查重新编译的长度。

示例标题:Act fast. Limited space available.
结果

Column1: Act fast.
Column2: Limited space
Column3: available.
Column4: (blank)

要使其变得真正有趣,我是Python的新手-请保持温柔。

1 个答案:

答案 0 :(得分:1)

这里看到整个溶液:

import pandas as pd

d = {'junk': 'Act fast. Limited space available.'}
df = pd.DataFrame(d.values(), columns=['raw_text'])

df = df['raw_text'].str.extract(r'^(?P<column1>.{1,10}\b)(?P<column2>.{1,15}\b)(?P<column3>.{1,15}\b)(?P<column4>.{0,25}\b)', expand=True)
print(df)

这产生

      column1         column2    column3 column4
0  Act fast.   Limited space   available