我有一个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)
因为这是我得到的错误。到目前为止,我还没有清理文件并做我想做的事情。我不确定我是否使用正确的方法。我正在使用熊猫来处理我的数据集。有帮助吗?
“
答案 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
,\r
和Tab
都替换为空。
由于存在inplace
参数,因此无需再次将结果替换为df
。
替代:使用to_replace=r'\s'
来消除空格,
也许只在选定的列中。