我正在读取带有数值的文件。
data = pd.read_csv('data.dat', sep=' ', header=None)
在文本文件中,每行以空格结尾,因此熊猫等待不存在的值,并在每行末尾添加“ nan”。 例如:
2.343 4.234
读取为: [2.343,4.234,nan]
我可以使用, usecols = [0 1]
避免出现这种情况,但我希望使用更通用的解决方案
答案 0 :(得分:3)
您可以在sep
参数中使用正则表达式。
您可以要求它使用任意数量的空格作为分隔符,直到找到下一个值,而不是将分隔符指定为<em>一个空间。您可以使用正则表达式\s+
:
data = pd.read_csv('data.dat', sep='\s+', header=None)
答案 1 :(得分:0)
指定使用usecols
读取的列将是一种更清洁的方法,或者您可以在读取数据后删除该列,但这会带来不必要的读取数据开销。通用方法将需要您创建一个正则表达式解析器,这将更加耗时且更加混乱。
答案 2 :(得分:0)
可以将csv文件中的分隔符更改为空格以外的其他内容吗?因为这可能是每行以nan结尾的原因。 如果您使用:
data = pd.read_csv('data.dat', sep=',', header=None)
例如,可以解决此问题而不必清除数据。