pandas 在PD数据框字符串中显示新行(\n)

kmbjn2e3  于 2023-04-10  发布在  其他
关注(0)|答案(3)|浏览(151)

我正在尝试创建一个数据框,其中有一列包含一串文本,这些文本有行。这些行用行分隔,以便它们易于阅读。

string=['''
    hello all:. I request the following from you:

    do the laundry:
    sleep early
    wake up early
    feed the chicken

     ''']

ii=pd.DataFrame(string, columns=['requirement'])
ii

然而,当我生成数据框时,表格显示得非常混乱,所有新行都以文本格式用(\n)分隔。
\n大家好:.我对你们有以下要求:\n\n\n洗衣服:\n早点睡\n早点醒\n喂鸡\n\n
如何保存PD数据框中的行,使其易于读取?

hrirmatl

hrirmatl1#

一个健壮的方法是使用tabulate

# pip install tabulate

from tabulate import tabulate

print(tabulate(ii, tablefmt='plain', headers=list(ii)))

输出:

requirement
 0  hello all:. I request the following from you:

        do the laundry:
        sleep early
        wake up early
        feed the chicken

其他示例:

ii = pd.DataFrame({'A': ['123\nABCDE\n\n\nF', '12\n3'],
                   'B': [1, 2],
                   'C': ['ABC', 'A\nB\nC']})`

输出:

A        B  C
 0  123      1  ABC
    ABCDE

    F
 1  12       2  A
    3           B
                C
作为HTML
from IPython.display import display, HTML
display(HTML(ii.to_html().replace('\\n', '<br>')))

输出:
实施例1:

实施例2:

对齐
print(tabulate(ii, tablefmt='plain', headers=list(ii), stralign='left'))

        A    B    C
 0  123      1  ABC
    ABCDE

    F
 1  12       2  A
    3           B
                C

print(tabulate(ii, tablefmt='plain', headers=list(ii), stralign='right'))

        A    B    C
 0    123    1  ABC
    ABCDE

        F
 1     12    2    A
        3         B
                  C
9w11ddsr

9w11ddsr2#

您可以用途:

ii['requirement'].replace('\n', '', regex=True, inplace=True)
gajydyqb

gajydyqb3#

您可以用途:

import re

string=['''
    hello all:. I request the following from you:

    do the laundry:
    sleep early
    wake up early
    feed the chicken

     ''']
string = [re.sub('(\n+)(\s+)',' ',s).strip() for s in string]

ii=pd.DataFrame(string, columns=['requirement'])
ii

相关问题