Pandas python用字符串替换空行

2024-05-14 04:08:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv,在某个时候变成这样:

  57926,57927,"79961', 'dsfdfdf'",fdfdfdfd,0.40997048,5 x fdfdfdfd,
57927,57928,"fb0ec52878b165aa14ae302e6064aa636f9ca11aa11f5', 'fdfd'",fdfdfd,1.64948454,20 fdfdfdfd,"



                         US 



                "
57928,57929,"f55bf599dba600550de724a0bec11166b2c470f98aa06', 'fdfdf'",fdfdfd,0.81300813,10 fdfdfdfd,"



                         US 







                "
57929,57930,"82e6b', 'reetrtrt'",trtretrtr,0.79783365,fdfdfdf,"



                         NL 

我想把这些空行去掉。到目前为止,我尝试了以下脚本:

^{pr2}$

以及

df=df.replace(r'\r\r\r\r\n\t\t\t\t\t\t', '',regex=True) 

因为这是我得到的错误。到目前为止,我还没有清理我的文件,做我想做的事情。如果我不确定我使用的方法不正确。我正在使用pandas来处理我的数据集。有什么帮助吗?
““


Tags: csvdfnlus空行fdfdfdfdffdfdfd
3条回答

我将首先open并对文件的数据进行预处理,然后将文件数据传递给pandas

lines = []
with open('file.csv') as f:
    for line in f:
        if line.strip(): lines.append(line.strip())

df = pd.read_csv(io.StringIO("\n".join(lines)))

基于您提供的文件片段,下面是如何将Pandas作为NaNs存储的空行替换为空字符串。在

import numpy as np
df = pd.read_csv("scedon_etoimo.csv")
df = df.replace(np.nan, "", regex=True)

这将允许您在基本Pandas数据帧上执行所有操作,而无需多次读取文件。尽管如此,我还是建议在加载数据之前对其进行预处理,因为在非统一布局中处理数据通常是一种更安全的方法。在

尝试:

df.replace(to_replace=r'[\n\r\t]', value='', regex=True, inplace=True)

此指令不使用任何内容替换\n\r和{}。 由于inplace参数,不需要再次将结果替换为df。在

替代方法:使用to_replace=r'\s'来消除空格, 可能只在选定的列中。在

相关问题 更多 >