Python 在使用pd.to_datetime()之后,如何更改日期或删除日期?

Python 在使用pd.to_datetime()之后,如何更改日期或删除日期?,python,pandas,Python,Pandas,我有一个df,如下所示: Datum Dates Time Menge day month 1/1/2018 0:00 2018-01-01 00:00:00 19.5 1 1 1/1/2018 0:15 2018-01-01 00:15:00 19.0 1 1 1/1/2018 0:30 2018-01-01 00:30:00 19.5 1 1 1/1/2018 0:45 2018-01-01 00:45

我有一个df,如下所示:

Datum   Dates   Time    Menge   day month
1/1/2018 0:00   2018-01-01  00:00:00    19.5    1   1
1/1/2018 0:15   2018-01-01  00:15:00    19.0    1   1
1/1/2018 0:30   2018-01-01  00:30:00    19.5    1   1
1/1/2018 0:45   2018-01-01  00:45:00    19.5    1   1
1/1/2018 1:00   2018-01-01  01:00:00    21.0    1   1
1/1/2018 1:15   2018-01-01  01:15:00    19.5    1   1
1/1/2018 1:30   2018-01-01  01:30:00    20.0    1   1
1/1/2018 1:45   2018-01-01  01:45:00    23.0    1   1
1/1/2018 2:00   2018-01-01  02:00:00    20.5    1   1
1/1/2018 2:15   2018-01-01  02:15:00    20.5    1   1
其数据类型为:

Datum     object
Dates     object
Time      object
Menge    float64
day        int64
month      int64
dtype: object
我想计算一些东西,比如小时平均值、日平均值、月平均值,为此,我必须转换
日期
时间
列的类型。为此,我做了:

data_nan_dropped['Dates'] = pd.to_datetime(data_nan_dropped.Dates)
data_nan_dropped.Time = pd.to_datetime(data_nan_dropped.Time, format='%H:%M:%S')
将我的df转换为:

Datum   Dates   Time    Menge   day month
1/1/2018 0:00   2018-01-01 00:00:00 1900-01-01 00:00:00 19.5    1   1
1/1/2018 0:15   2018-01-01 00:00:00 1900-01-01 00:15:00 19.0    1   1
1/1/2018 0:30   2018-01-01 00:00:00 1900-01-01 00:30:00 19.5    1   1
1/1/2018 0:45   2018-01-01 00:00:00 1900-01-01 00:45:00 19.5    1   1
1/1/2018 1:00   2018-01-01 00:00:00 1900-01-01 01:00:00 21.0    1   1
1/1/2018 1:15   2018-01-01 00:00:00 1900-01-01 01:15:00 19.5    1   1
1/1/2018 1:30   2018-01-01 00:00:00 1900-01-01 01:30:00 20.0    1   1
1/1/2018 1:45   2018-01-01 00:00:00 1900-01-01 01:45:00 23.0    1   1
1/1/2018 2:00   2018-01-01 00:00:00 1900-01-01 02:00:00 20.5    1   1
1/1/2018 2:15   2018-01-01 00:00:00 1900-01-01 02:15:00 20.5    1   1
现在,在
Time
列中,时间被转换为1900-01-01的形式。我不想那样

如果可能的话,我想要以下之一:

  • 在不显示日期的情况下,
    Time
    列可以转换为
    datetime64[ns]
  • 基准
    列中的日期将在此处显示,而不是 1900-01-01
  • 我怎样才能做到这一点

    预期输出:

     Datum  Dates   Time    Menge   day month
        1/1/2018 0:00   2018-01-01 00:00:00 2018-01-01 00:00:00 19.5    1   1
        1/1/2018 0:15   2018-01-01 00:00:00 2018-01-01 00:15:00 19.0    1   1
        1/1/2018 0:30   2018-01-01 00:00:00 2018-01-01 00:30:00 19.5    1   1
        1/1/2018 0:45   2018-01-01 00:00:00 2018-01-01 00:45:00 19.5    1   1
        1/1/2018 1:00   2018-01-01 00:00:00 2018-01-01 01:00:00 21.0    1   1
        1/1/2018 1:15   2018-01-01 00:00:00 2018-01-01 01:15:00 19.5    1   1
        1/1/2018 1:30   2018-01-01 00:00:00 2018-01-01 01:30:00 20.0    1   1
        1/1/2018 1:45   2018-01-01 00:00:00 2018-01-01 01:45:00 23.0    1   1
        1/1/2018 2:00   2018-01-01 00:00:00 2018-01-01 02:00:00 20.5    1   1
        1/1/2018 2:15   2018-01-01 00:00:00 2018-01-01 02:15:00 20.5    1   1
    

    如果我通过查看您的预期输出正确理解您,我们可以使用
    Datum
    列创建正确的
    Time
    列:

    df['Dates'] = pd.to_datetime(df['Dates'])
    df['Time'] = pd.to_datetime(df['Datum'], format='%d/%m/%Y %H:%M')
    
               Datum      Dates                Time  Menge  day  month
    0  1/1/2018 0:00 2018-01-01 2018-01-01 00:00:00   19.5    1      1
    1  1/1/2018 0:15 2018-01-01 2018-01-01 00:15:00   19.0    1      1
    2  1/1/2018 0:30 2018-01-01 2018-01-01 00:30:00   19.5    1      1
    3  1/1/2018 0:45 2018-01-01 2018-01-01 00:45:00   19.5    1      1
    4  1/1/2018 1:00 2018-01-01 2018-01-01 01:00:00   21.0    1      1
    5  1/1/2018 1:15 2018-01-01 2018-01-01 01:15:00   19.5    1      1
    6  1/1/2018 1:30 2018-01-01 2018-01-01 01:30:00   20.0    1      1
    7  1/1/2018 1:45 2018-01-01 2018-01-01 01:45:00   23.0    1      1
    8  1/1/2018 2:00 2018-01-01 2018-01-01 02:00:00   20.5    1      1
    9  1/1/2018 2:15 2018-01-01 2018-01-01 02:15:00   20.5    1      1
    

    日期已经在
    基准中了
    ,那么“基准列中的日期显示在那里而不是1900-01-01”是什么意思呢?