Pandas DataFrame中字符串内部的换行

Pandas DataFrame中字符串内部的换行

在本文中,我们将介绍如何在Pandas DataFrame中通过处理字符串来控制换行的显示。当我们在DataFrame中存储包含换行的文本时,DataFrame默认会将其显示为单行,这时候我们需要一个方法来处理换行符,才能将字符串在DataFrame中美观地显示。

阅读更多:Pandas 教程

DataFrame中数据包含换行符

首先来看以下示例:

import pandas as pd

df = pd.DataFrame({'text': ['First line\nSecond line', 'Third line', "Fourth line\nFifth line\nSixth line"]})
print(df)
Python

以上代码将创建一个DataFrame,其中的’text’列包含了不同数量换行的文本。运行代码可以看到以下结果:

                                    text
0                 First line\nSecond line
1                             Third line
2  Fourth line\nFifth line\nSixth line
Python

我们可以看到,DataFrame为包含换行符的单元格自动加上了\n来表示换行。这看起来并不美观,尤其是当我们想要直接从DataFrame中复制文本时。因此,我们需要一种方式来以人类可读的方式显示所有文本值。

处理’\n’换行符

为了展示包含换行符的字符串,我们可以使用 str.replace('\n', '<br>') 来将 \n 替换为 HTML<br>。这将使Jupyter Notebook能够使用HTML显示行。我们还可以在 Pandas DataFrame 的str属性中使用该方法,以处理包含 ‘\n’ 的文本中的换行符。修改后的代码如下所示:

df['text'] = df['text'].str.replace('\n', '<br>')
print(df.to_html(escape=False))
Python

输出结果如下:

text
0 First line
Second line
1 Third line
2 Fourth line
Fifth line
Sixth line

如上所示,我们这里使用了to_html()方法来以HTML格式输出DataFrame,这样我们才能看到换行符以HTML形式呈现。

另外我们也可以使用apply()函数来应用 str.replace('\n', '<br>')方法:

df['text'] = df['text'].apply(lambda x: x.replace('\n', '<br>'))
print(df.to_html(escape=False))
Python

输出结果与前一段代码一致。

除了使用HTML格式外,我们还可以使用Markdown格式来显示包含 ‘\n’ 的字符串。方法与上述方法类似,只要将输出改为Markdown格式即可:

df['text'] = df['text'].str.replace('\n', '  \n')
print(df.to_markdown(index=False))
Python

输出结果如下:

text
First line
Second line
Third line
Fourth line
Fifth line
Sixth line

如上所示,我们在str.replace方法中使用两个空格和一个换行符来代替\n,这样Markdown就会把它们解释为新的行。注意在Markdown中使用换行时,要在行末添加两个空格。

总结

在本文中,我们介绍了如何在DataFrame中通过方法处理包含换行符的字符串,以便在DataFrame中美观地展示。我们演示了如何使用HTML和Markdown两种格式来处理并展示换行符。这两种方法都能够让用户在DataFrame中更好地阅读和使用包含换行字符的数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册