我正在尝试这个文本旋转器,但当我试图在创建的字符串中添加换行符时,我发现它很麻烦。正如您在下面的代码中看到的那样,我添加了"\n",但是打印生成的输出(以及DataFrame的内容)不包含这个分隔符。
import spintax
df = pd.DataFrame()
for i in range(0, 50):
data = spintax.spin("{option1|option2}" + "\n" + " blablabla ")
df = df.append({'A': data}, ignore_index=True)
df['A'] = df['A'].str.replace(r'\s+', " ")
print(df)我怎么才能让它工作呢?
print(df)输出如下所示:
A
0 option2 blablabla
1 option2 blablabla
2 option2 blablabla
3 option2 blablabla
4 option2 blablabla 发布于 2019-09-25 21:23:57
因此,当您替换r\s+时,问题出在哪里,它也会匹配换行符,并将它们替换为空格。source。
如果您注释您的行,则以下内容将保留字符串中的换行符。
import spintax
df = pd.DataFrame()
for i in range(0, 50):
data = spintax.spin("{option1|option2}" + "\n" + " blablabla ")
df = df.append({'A': data}, ignore_index=True)
# df['A'] = df['A'].str.replace(r'\s+', " ")
print(df)这就是你想要实现的吗?
发布于 2019-09-25 21:20:59
这是不可能的,因为在没有索引值的情况下,数据帧中会有额外的行。数据帧的定义不支持我认为您正在尝试实现的Two-dimensional size-mutable, potentially heterogeneous tabular data structure with labeled axes (rows and columns).
我相信它看起来像这样:
A
0 option2
blablabla
1 option2
blablabla
2 option2
blablabla
3 option2
blablabla
4 option2
blablabla 作为一种解决方案,您可以尝试拆分成两列,并添加一个额外的列,该列将标记换行符应该出现的位置,这样当您连接整行时,您将获得所需的字符串:
import spintax
import pandas as pd
df = pd.DataFrame()
for i in range(0, 50):
data = spintax.spin("{option1|option2}" + "\n" +" blablabla ")
df = df.append({'A': data}, ignore_index=True)
df['A'] = df['A'].str.replace(r'\s+', " ")
print(df)
df['split'] = df['A'].str.split(' ')
df['first'] = df['split'].str.get(0)
df['flag_break'] = '\n'
df['second'] = df['split'].str.get(1)
df['full_string'] = df['first'] + " " +df['flag_break']+df['second']
df = df.drop('split',axis=1)
print(df.head())
print(df['full_string'].max())数据帧的输出:
A first flag_break second full_string
0 option2 blablabla option2 \n blablabla option2 \nblablabla
1 option1 blablabla option1 \n blablabla option1 \nblablabla
2 option2 blablabla option2 \n blablabla option2 \nblablabla
3 option1 blablabla option1 \n blablabla option1 \nblablabla
4 option2 blablabla option2 \n blablabla option2 \nblablabla完整字符串的输出,这样就可以得到换行符print(df['full_string'].max())
option2
blablablahttps://stackoverflow.com/questions/58099245
复制相似问题