【问题标题】:How to remove newline in pandas dataframe columns?如何删除熊猫数据框列中的换行符?
【发布时间】:2019-08-25 21:25:35
【问题描述】:

我想缩短和清理 CSV 文件以在 ElasticSearch 中使用它。 但是某些数据框(单元格)中有换行符,并且无法将 CSV 解析为 ElasticSearch。我现在用 pandas 缩短了 CSV 并尝试删除换行符,但它不起作用。

代码如下:

import pandas as pd

f=pd.read_csv("test.csv")

keep_col = ["Plugin ID","CVE","CVSS","Risk","Host","Protocol","Port","Name","Synopsis","Description","Solution",]

new_f = f[keep_col].replace('\\n',' ', regex=True)
new_f.to_csv("newFile.csv", index=False)

短缺正在发挥作用,但我在描述、概要和解决方案中有换行符。 知道如何用 Python / Pandas 解决它吗? CSV 有大约 100k 条目,因此必须在每个条目中进行换行符删除。

【问题讨论】:

  • 尝试“df = df.replace('\n',' ', regex=True)”
  • 我试过了,但是“df”到底是什么?它说...变量未定义。
  • 嗨@MarvinKallohn,在您的情况下,df 将是f。您还可以使用 pandas 应用功能更好地检查,您可以在数据框列上运行该功能以删除换行符。
  • 是的,我也这么想,并在我的代码中尝试过,正如您在上面看到的,但它仍然无法正常工作

标签: python pandas csv


【解决方案1】:

据我所知,.replace() 参数的第三个参数计算您想用新子字符串替换旧子字符串的次数,因此只需删除第三个参数,因为您不这样做'不知道新行存在的次数。

new_f = f[keep_col].replace('\\n',' ')

这应该会有所帮助

【讨论】:

    【解决方案2】:

    如果不是强制使用 pandas 数据框,您可以使用简单的 python 以下列方式进行:

    with open('test.csv', 'r') as txtReader:
        with open('new_test.csv', 'w') as txtWriter:
            for line in txtReader.readlines():
                line = line.replace('\\n', '')
                txtWriter.write(line)
    

    【讨论】:

      猜你喜欢
      • 2021-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多