熊猫python用字符串替换空行

时间:2018-09-26 19:04:20

标签: python pandas replace

我有一个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 

我想摆脱这些空白行。到目前为止,我尝试了以下脚本:

df = pd.read_csv("scedon_etoimo.csv")

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

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

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

3 个答案:

答案 0 :(得分:2)

我首先open预处理文件的数据,然后然后传递给熊猫

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)))

答案 1 :(得分:0)

根据您提供的文件片段,这是如何替换熊猫存储为NaN的空行的空白字符串。

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

这将使您可以在基本的Pandas DataFrame上执行所有操作,而无需多次读取文件。话虽如此,我也建议您在加载数据之前对其进行预处理,因为这通常是处理非均匀布局中数据的更安全的方法。

答案 2 :(得分:0)

尝试:

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

此指令将\n\rTab都替换为空。 由于存在inplace参数,因此无需再次将结果替换为df

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