Python 如何读取缺少值和';delim_whitespace=True';?
我想知道是否有可能简单地删除任何导致错误的行,而不是引发异常 我的问题与处理文本文件有关,例如: 111 aaa 222 bbb 1 a 2 b 11 22 111 aaa 222 bbb 1 a 2 b 11 22 由于空格作为分隔符的数量不同,我使用选项'delim_whitespace=True'来读取_csv函数。不过,我也通过“dtype”参数明确指定了数据类型 pandas将第三行的值22移到第二列是很自然的(我不相信有办法让它相信它实际上是移到第三行的)。但是,由于第二列预期为字符串,因此会引发异常 我知道使用“converters”参数可能可以解决这个问题,但我担心性能,因为数据文件非常大(数百万行)Python 如何读取缺少值和';delim_whitespace=True';?,python,pandas,Python,Pandas,我想知道是否有可能简单地删除任何导致错误的行,而不是引发异常 我的问题与处理文本文件有关,例如: 111 aaa 222 bbb 1 a 2 b 11 22 111 aaa 222 bbb 1 a 2 b 11 22 由于空格作为分隔符的数量不同,我使用选项'delim_whitespace=True'来读取_csv函数。不过,我也通过“dtype”参数明确指定了数据类型 pandas将第三行的值22移到第二列是很自然的(我不相信有办法让它相信它实际上是移到第三行
因此,是否可以删除数字或列数较低的行(较高的行有“error_bad_lines”)或删除在重新键入时出现异常的任何行。或者您还有其他想法吗?使用pandas.read\u fwf读取文件。这将用NaN值填充空字符串 =^^=
import pandas as pd
data = pd.read_fwf('data.txt', header=None)
data.columns = ["c1", "c2", "c3", "c4"]
负载:
接下来,只需删除具有NaN值的行:
out_data = data.dropna()
输出:
c1 c2 c3 c4
0 111 aaa 222 bbb
1 1 a 2 b
您希望删除至少有一列为空的所有行
c1 c2 c3 c4
0 111 aaa 222 bbb
1 1 a 2 b