如何在数据帧内的字符串中添加换行符?

2024-06-25 23:58:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试这个文本微调器,但是当我尝试在创建的字符串中添加换行符时,我发现它很麻烦。正如您在下面的代码中看到的,我添加了"\n",但是由打印生成的输出(以及数据帧的内容)不包含这个中断。你知道吗

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 

Tags: 数据字符串代码文本import内容dataframedf
2条回答

这是不可能的,因为在没有索引值的数据帧中会有一个额外的行。数据帧的定义不支持我认为您试图实现的目标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
blablabla

所以问题在于,当您替换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)

这就是你想要的吗?你知道吗

相关问题 更多 >