python将缺失的数据填充到csv中_python – Pandas read_csv使用字符串’nan’填充空值,而不是解析日期...

我将np.nan分配给DataFrame列中的缺失值.然后使用to_csv将DataFrame写入csv文件.如果我使用文本编辑器打开文件,则生成的csv文件在缺少值的逗号之间没有任何内容.但是当我使用read_csv将csv文件读回DataFrame时,缺失的值变为字符串’nan’而不是NaN.因此,isnull()不起作用.例如:

In [13]: df

Out[13]:

index value date

0 975 25.35 nan

1 976 26.28 nan

2 977 26.24 nan

3 978 25.76 nan

4 979 26.08 nan

In [14]: df.date.isnull()

Out[14]:

0 False

1 False

2 False

3 False

4 False

我做错了吗?我应该将一些其他值而不是np.nan分配给缺失值,以便isnull()能够获取吗?

编辑:对不起,忘了提到我还设置了parse_dates = [2]来解析该列.该列包含缺少某些行的日期.我希望缺少的行是NaN.

EIDT:我刚刚发现问题实际上是由于parse_dates.如果日期列包含缺失值,则read_csv将不会解析该列.相反,它会将日期读作字符串,并将字符串’nan’分配给空值.

In [21]: data = pd.read_csv('test.csv', parse_dates = [1])

In [22]: data

Out[22]:

value date id

0 2 2013-3-1 a

1 3 2013-3-1 b

2 4 2013-3-1 c

3 5 nan d

4 6 2013-3-1 d

In [23]: data.date[3]

Out[23]: 'nan'

pd.to_datetime也不起作用:

In [12]: data

Out[12]:

value date id

0 2 2013-3-1 a

1 3 2013-3-1 b

2 4 2013-3-1 c

3 5 nan d

4 6 2013-3-1 d

In [13]: data.dtypes

Out[13]:

value int64

date object

id object

In [14]: pd.to_datetime(data['date'])

Out[14]:

0 2013-3-1

1 2013-3-1

2 2013-3-1

3 nan

4 2013-3-1

Name: date

有没有办法让read_csv parse_dates处理包含缺失值的列?即将NaN分配给缺失值并仍然解析有效日期?

你可能感兴趣的:(python将缺失的数据填充到csv中_python – Pandas read_csv使用字符串’nan’填充空值,而不是解析日期...)