Похоже, что, по крайней мере, в Pandas 0,25 даже наносекунды сохраняются, если вы используете тип данных datetime64 [нс] .
Я сделал такой тест:
Строка ввода:
txt ='''Date,Amount
2020-01-02 09:00:01.000200001,1
2020-01-02 09:00:01.200030002,2
2020-01-02 09:00:01.250004003,3'''
Считать фрейм данных:
df = pd.read_csv(io.StringIO(txt), parse_dates=[0])
Результат:
Date Amount
0 2020-01-02 09:00:01.000200001 1
1 2020-01-02 09:00:01.200030002 2
2 2020-01-02 09:00:01.250004003 3
Итак, как вы видите, все 9 цифр после десятичной точки на месте.
Печать микросекунд:
df.Date.dt.microsecond
Результат:
0 200
1 200030
2 250004
Name: Date, dtype: int64
Печать наносекунд:
df.Date.dt.nanosecond
Результат:
0 1
1 2
2 3
Name: Date, dtype: int64
Может быть, вы используете более старую версию Python или Pandas? Попробуйте обновить их и повторите мой тест на вашем компьютере.