首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在DataFrame中的字符串中添加换行符?

如何在DataFrame中的字符串中添加换行符?
EN

Stack Overflow用户
提问于 2019-09-25 21:11:15
回答 2查看 4.8K关注 0票数 1

我正在尝试这个文本旋转器,但当我试图在创建的字符串中添加换行符时,我发现它很麻烦。正如您在下面的代码中看到的那样,我添加了"\n",但是打印生成的输出(以及DataFrame的内容)不包含这个分隔符。

代码语言:javascript
复制
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)输出如下所示:

代码语言:javascript
复制
                         A
0   option2 blablabla 
1   option2 blablabla 
2   option2 blablabla 
3   option2 blablabla 
4   option2 blablabla 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-25 21:23:57

因此,当您替换r\s+时,问题出在哪里,它也会匹配换行符,并将它们替换为空格。source

如果您注释您的行,则以下内容将保留字符串中的换行符。

代码语言:javascript
复制
  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)

这就是你想要实现的吗?

票数 1
EN

Stack Overflow用户

发布于 2019-09-25 21:20:59

这是不可能的,因为在没有索引值的情况下,数据帧中会有额外的行。数据帧的定义不支持我认为您正在尝试实现的Two-dimensional size-mutable, potentially heterogeneous tabular data structure with labeled axes (rows and columns).

我相信它看起来像这样:

代码语言:javascript
复制
                         A
0   option2
    blablabla
1   option2
    blablabla
2   option2 
    blablabla 
3   option2 
    blablabla 
4   option2 
    blablabla 

作为一种解决方案,您可以尝试拆分成两列,并添加一个额外的列,该列将标记换行符应该出现的位置,这样当您连接整行时,您将获得所需的字符串:

代码语言:javascript
复制
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())

数据帧的输出:

代码语言:javascript
复制
                     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())

代码语言:javascript
复制
option2
blablabla
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58099245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档