正在读取python中缺少值的文件

正在读取python中缺少值的文件,python,pandas,Python,Pandas,我尝试使用pandas.read\u csv读取缺少值的.txt。我的数据格式如下: 10/08/2012,12:10:10,name1,0.81,4.02,50;18.5701400N,4;07.7693770E,7.92,10.50,0.0106,4.30,0.0301 10/08/2012,12:10:11,name2,,,,,10.87,1.40,0.0099,9.70,0.0686 数千个样本具有相同的点名称、gps位置和其他读数。 我使用一个代码: myData = read_cs

我尝试使用pandas.read\u csv读取缺少值的.txt。我的数据格式如下:

10/08/2012,12:10:10,name1,0.81,4.02,50;18.5701400N,4;07.7693770E,7.92,10.50,0.0106,4.30,0.0301
10/08/2012,12:10:11,name2,,,,,10.87,1.40,0.0099,9.70,0.0686
数千个样本具有相同的点名称、gps位置和其他读数。 我使用一个代码:

myData = read_csv('~/data.txt', sep=',', na_values='')
代码错误,因为na_值没有给出NaN或其他指示符。列应该有相同的大小,但我用不同的长度结束

我不知道在na_值之后应该输入什么(尝试了所有不同的方法)。
谢谢

参数
na_值
必须是“类似列表的”(参见此)

字符串是“类似列表”的,因此:

同样地:

na_values=''
# is equivalent to
na_values=[] # and this is not what you want!

这意味着您需要使用
na_values=['']

您使用的熊猫是什么版本的?将空字符串解释为NaN是pandas的默认行为,并且似乎可以在v0.7.3和当前主程序中解析数据片段中的空字符串,而根本不使用
na_值
参数

In [10]: data = """\
10/08/2012,12:10:10,name1,0.81,4.02,50;18.5701400N,4;07.7693770E,7.92,10.50,0.0106,4.30,0.0301
10/08/2012,12:10:11,name2,,,,,10.87,1.40,0.0099,9.70,0.0686
"""

In [11]: read_csv(StringIO(data), header=None).T
Out[11]: 
                   0           1
X.1       10/08/2012  10/08/2012
X.2         12:10:10    12:10:11
X.3            name1       name2
X.4             0.81         NaN
X.5             4.02         NaN
X.6   50;18.5701400N         NaN
X.7    4;07.7693770E         NaN
X.8             7.92       10.87
X.9             10.5         1.4
X.10          0.0106      0.0099
X.11             4.3         9.7
X.12          0.0301      0.0686

如果您
skiprows=1
,则文件中只有一行。如果没有这个参数,我会在数据框中看到clear
NaN
s。我只发布了两行数据来显示其格式。skiprows=1不处理丢失的数据,在原始文件中有15000行,第一行包括一些我不想要的名称。为了清晰起见,我删除了
skiprows=1
,谢谢您的回答。na_values=['']是我第一次尝试,但并没有达到预期效果。如果我将一个参数作为列表[“”]或空白“”接受,则得到相同的结果。我真的不知道还有什么可以尝试的,因为它似乎不会自动拾取丢失的值,而且我有一个问题需要指定it@tomasz74这似乎对我有用,以你的例子来说(没有
skiprows
)。。。也许你需要
myData.T
(转置)。@tomasz74在测试后,似乎
'
,在默认情况下(
None
),这对我来说很好(列大小相同)…在你回复后,我再次浏览了数据。我的困惑是,在每个列名的输出中都有许多非空值,每个列的值都不同。但是你是对的,长度是一样的。谢谢
In [10]: data = """\
10/08/2012,12:10:10,name1,0.81,4.02,50;18.5701400N,4;07.7693770E,7.92,10.50,0.0106,4.30,0.0301
10/08/2012,12:10:11,name2,,,,,10.87,1.40,0.0099,9.70,0.0686
"""

In [11]: read_csv(StringIO(data), header=None).T
Out[11]: 
                   0           1
X.1       10/08/2012  10/08/2012
X.2         12:10:10    12:10:11
X.3            name1       name2
X.4             0.81         NaN
X.5             4.02         NaN
X.6   50;18.5701400N         NaN
X.7    4;07.7693770E         NaN
X.8             7.92       10.87
X.9             10.5         1.4
X.10          0.0106      0.0099
X.11             4.3         9.7
X.12          0.0301      0.0686