Pandas read_csv füllt leere Werte mit der Zeichenfolge 'nan', anstatt das Datum zu analysieren

Ich weise zunp.nan auf die fehlenden Werte in einer Spalte eines DataFrame. Der DataFrame wird dann mit to_csv in eine CSV-Datei geschrieben. Die resultierende CSV-Datei enthält zwischen den Kommas nichts für die fehlenden Werte, wenn ich die Datei mit einem Texteditor öffne. Aber wenn ich diese CSV-Datei mit read_csv wieder in einen DataFrame lese, werden die fehlenden Werte zur Zeichenfolge'nan' anstelle von NaN. Als Ergebnis,isnull() funktioniert nicht. Zum Beispiel:

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

Mache ich etwas falsch? Sollte ich stattdessen ein paar andere Werte vergeben?np.nan auf die fehlenden Werte, so dass dieisnull() würde abholen können?

EDIT: Sorry, ich habe vergessen zu erwähnen, dass ich auch parse_dates = [2] gesetzt habe, um diese Spalte zu analysieren. Diese Spalte enthält Datumsangaben, bei denen einige Zeilen fehlen. Ich möchte die fehlenden Zeilen habenNaN.

EIDT: Ich habe gerade herausgefunden, dass das Problem wirklich auf parse_dates zurückzuführen ist. Wenn die Datumsspalte fehlende Werte enthält, analysiert read_csv diese Spalte nicht. Stattdessen liest es die Daten als Zeichenfolge und weist den leeren Werten die Zeichenfolge 'nan' zu.

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 funktioniert auch nicht:

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

Gibt es eine Möglichkeit, read_csv parse_dates zu verwenden, um mit Spalten zu arbeiten, die fehlende Werte enthalten? Das heißt Fehlenden Werten NaN zuweisen und trotzdem die gültigen Daten analysieren?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage