【问题标题】:Pandas maintain newlines熊猫维护换行符
【发布时间】:2022-07-24 23:48:17
【问题描述】:

我正在使用一个巨大的 pandas df 并为一个特定的列(例如文本首字母)我想:

  1. 在读取 df 时保留换行符,不要将所有行合并到同一个单元格中。
    (例如 Lorem ipsum dolor sit amet、consectetur adipiscing elit。
    Ut enim ad minim veniam。
    等等...
  2. 遍历每个短语 (Q1) 并应用正则表达式。

我已经试过了:

df = pd.read_csv(f, sep='\t', encoding='utf-8', lineterminator='\n')

并重新分割文本:

segmentation_rule = r"\n"
df["Text_initial"].apply(lambda x: re.split(segmentation_rule, x))

请注意,并非所有短语都以 . 结尾 上述结果类似于:Lorem ipsum dolor sit amet,consectetur adipiscing elit。
Ut enim ad minim veniam。等等...(同一行)

我如何“强制”pandas 来维护已经存在的换行符,然后循环遍历每个短语(每次都正确分段)?

Text_initial
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Ut enim ad minim veniam.
Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Sunt in culpa qui officia deserunt mollit anim id est laborum.
Pharetra magna ac placerat vestibulum lectus.
Nec feugiat nisl pretium fusce id velit ut.
Amet justo donec enim diam vulputate ut pharetra.
Nibh venenatis cras sed felis eget velit aliquet sagittis id.

提前谢谢你。

【问题讨论】:

    标签: python pandas newline


    【解决方案1】:

    如果没有 csv 文件,重现问题有点困难,但鉴于以下数据框,其中文本合并为两行:

    import pandas as pd
    
    df = pd.DataFrame(
        {
            "Text": [
                "Lorem ipsum dolor sit amet, consectetur adipiscing elit.\nUt enim ad minim veniam.\nSed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\nSunt in culpa qui officia deserunt mollit anim id est laborum.",
                "Pharetra magna ac placerat vestibulum lectus.\nNec feugiat nisl pretium fusce id velit ut.\nAmet justo donec enim diam vulputate ut pharetra.\nNibh venenatis cras sed felis eget velit aliquet sagittis id.",
            ]
        }
    )
    

    这是为每个新句子赋予其自己的行的一种方法:

    df = pd.DataFrame(
        df["Text"].apply(lambda x: x.split("\n")).explode("Text").reset_index(drop=True)
    )
    
    print(df)
    # Output
                                                                     Text
    0            Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    1                                            Ut enim ad minim veniam.
    2  Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
    3      Sunt in culpa qui officia deserunt mollit anim id est laborum.
    4                       Pharetra magna ac placerat vestibulum lectus.
    5                         Nec feugiat nisl pretium fusce id velit ut.
    6                   Amet justo donec enim diam vulputate ut pharetra.
    7       Nibh venenatis cras sed felis eget velit aliquet sagittis id.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-12
      • 2018-10-29
      • 1970-01-01
      • 1970-01-01
      • 2018-07-12
      • 2019-06-03
      • 2019-05-19
      相关资源
      最近更新 更多