Python 使用字符串替换空行
我有一个csv,它在某个时候会变成这样:Python 使用字符串替换空行,python,pandas,replace,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,5
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)
及
因为这是我得到的错误。到目前为止,我还没有清理我的文件,做我想做的事情。我不确定我是否使用了正确的方法。我正在使用pandas处理我的数据集。有什么帮助吗?“我会先
打开
并预处理文件的数据,然后传递给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存储为NaN的空行
import numpy as np
df = pd.read_csv("scedon_etoimo.csv")
df = df.replace(np.nan, "", regex=True)
这将允许您在基本数据帧上执行所有操作,而无需多次读取文件。尽管如此,我还建议您在加载数据之前对数据进行预处理,因为在非统一布局中处理数据通常更安全。尝试:
df.replace(to_replace=r'[\n\r\t]', value='', regex=True, inplace=True)
此指令将不使用任何内容替换每个\n
、\r
和选项卡。
由于inplace
参数,无需再次将结果替换为df
备选方案:使用来替换=r'\s'
来消除空格,
可能仅在选定的列中。格式对我来说无效(cols perrow的数量不同)。这是实际文件吗?@Gerasimos,您需要在示例文件的末尾添加一个额外的“
。现在,打开的引号将中断读取代码段的尝试。另一个选项是将文件读入数据框,然后使用数据框apply
或公认答案中的赋值,使用str.strip
函数进行后期处理:我还尝试了df.replace('\s+','',regex=True,inplace=True)
并且工作正常。无论如何,谢谢大家的回答!
df.replace(to_replace=r'[\n\r\t]', value='', regex=True, inplace=True)