Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何读取缺少值和';delim_whitespace=True';?_Python_Pandas - Fatal编程技术网

Python 如何读取缺少值和';delim_whitespace=True';?

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移到第二列是很自然的(我不相信有办法让它相信它实际上是移到第三行

我想知道是否有可能简单地删除任何导致错误的行,而不是引发异常

我的问题与处理文本文件有关,例如:

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”参数可能可以解决这个问题,但我担心性能,因为数据文件非常大(数百万行)


因此,是否可以删除数字或列数较低的行(较高的行有“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