Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将日期列添加到python中已经存在的时间列中?_Python_Python 3.x_Pandas - Fatal编程技术网

如何将日期列添加到python中已经存在的时间列中?

如何将日期列添加到python中已经存在的时间列中?,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个df,如下所示: Time Werktag 0 00:15:00 73.0 1 00:30:00 70.1 2 00:45:00 67.1 3 01:00:00 64.5 4 01:15:00 62.3 5 01:30:00 60.6 6 01:45:00 59.2 7 02:00:00 57.9 8 02:15:00 56.7 9 02:30:00 55.6 10

我有一个
df
,如下所示:

        Time    Werktag
0   00:15:00    73.0
1   00:30:00    70.1
2   00:45:00    67.1
3   01:00:00    64.5
4   01:15:00    62.3
5   01:30:00    60.6
6   01:45:00    59.2
7   02:00:00    57.9
8   02:15:00    56.7
9   02:30:00    55.6
10  02:45:00    54.7
11  03:00:00    54.2
12  03:15:00    54.1
13  03:30:00    54.6
14  03:45:00    55.8
15  04:00:00    57.9
16  04:15:00    60.9
17  04:30:00    64.4
18  04:45:00    68.0
19  05:00:00    71.0
20  05:15:00    73.2
21  05:30:00    74.7
22  05:45:00    75.7
23  06:00:00    76.6
24  06:15:00    77.7
25  06:30:00    79.3
26  06:45:00    81.9
27  07:00:00    86.0
28  07:15:00    91.9
29  07:30:00    100.4
30  07:45:00    111.9
31  08:00:00    127.1
32  08:15:00    145.9
33  08:30:00    166.2
34  08:45:00    185.2
35  09:00:00    200.0
36  09:15:00    208.5
37  09:30:00    212.1
38  09:45:00    212.6
39  10:00:00    212.1
40  10:15:00    212.2
41  10:30:00    213.1
42  10:45:00    214.6
43  11:00:00    216.8
44  11:15:00    219.2
45  11:30:00    221.2
46  11:45:00    222.0
47  12:00:00    220.5
48  12:15:00    216.3
49  12:30:00    209.8
50  12:45:00    201.9
51  13:00:00    193.4
52  13:15:00    185.0
53  13:30:00    177.4
54  13:45:00    170.9
55  14:00:00    166.3
56  14:15:00    163.9
57  14:30:00    163.6
58  14:45:00    165.1
59  15:00:00    168.2
60  15:15:00    172.5
61  15:30:00    177.3
62  15:45:00    181.4
63  16:00:00    184.1
64  16:15:00    184.5
65  16:30:00    183.6
66  16:45:00    182.1
67  17:00:00    181.3
68  17:15:00    181.5
69  17:30:00    181.7
70  17:45:00    180.0
71  18:00:00    174.7
72  18:15:00    164.8
73  18:30:00    151.5
74  18:45:00    137.0
75  19:00:00    123.3
76  19:15:00    112.1
77  19:30:00    103.4
78  19:45:00    97.3
79  20:00:00    93.4
80  20:15:00    91.6
81  20:30:00    91.1
82  20:45:00    91.1
83  21:00:00    90.6
84  21:15:00    89.2
85  21:30:00    87.2
86  21:45:00    85.0
87  22:00:00    83.2
88  22:15:00    82.1
89  22:30:00    81.7
90  22:45:00    81.6
91  23:00:00    81.3
92  23:15:00    80.6
93  23:30:00    79.5
94  23:45:00    77.9
95  00:00:00    75.7
Time
列从
00:15:00
(当日)到
00:00:00
(次日)。我想更改
时间
列,格式如下:
DD.MM.YYYY HH:MM
日期从2020年1月1日到2020年12月31日

样本输出

     Time         Werktag
01.01.2020 00:15    73.0
01.01.2020 00:30    70.1
01.01.2020 00:45    67.1
01.01.2020 01:00    64.5
01.01.2020 01:15    62.3
02.01.2020 00:00    75.7
02.01.2020 00:15    73.0
02.01.2020 00:30    70.1
02.01.2020 00:45    67.1
02.01.2020 01:00    64.5
02.01.2020 01:15    62.3
03.01.2020 00:00    75.7
依此类推至2020年12月31日

31.12.2020 00:15    73.0
31.12.2020 00:30    70.1
31.12.2020 00:45    67.1
31.12.2020 01:00    64.5
31.12.2020 01:15    62.3
01.01.2021 00:00    75.7
如何做到这一点

提前感谢

使用交叉连接方式和帮助程序创建的数据框、上次连接方式和添加自定义格式方式,如果输入列中的值
00:00
,也会添加
1天

td = pd.to_timedelta(df['Time'].astype(str))
df1 = df.assign(Time = td.mask(td==pd.Timedelta(0), td + pd.Timedelta(1, 'd')), a=1)
df2 = pd.DataFrame({'dates': pd.date_range('01.01.2020', '31.12.2020'), 'a': 1})

df = df2.merge(df1, how='outer').drop('a', axis=1)
df['dates'] = df['dates'].add(df.pop('Time')).dt.strftime('%d.%m.%Y %H:%M')
print (df)
                  dates  Werktag
0      01.01.2020 00:15     73.0
1      01.01.2020 00:30     70.1
2      01.01.2020 00:45     67.1
3      01.01.2020 01:00     64.5
4      01.01.2020 01:15     62.3
                ...      ...
35131  31.12.2020 23:00     81.3
35132  31.12.2020 23:15     80.6
35133  31.12.2020 23:30     79.5
35134  31.12.2020 23:45     77.9
35135  01.01.2021 00:00     75.7

[35136 rows x 2 columns]

最后一个值是
01.01.2021 00:00
31.12.2020 01:15
?最后一行的最后一个值是
01.01.2021 00:00
是否正确?是。最后一行必须是
01.01.2021 00:00 75.7
@jezrael I添加了整个
df
df1=df.assign(Time=pd.to_timedelta(df['Time']),a=1)
给我以下错误:
ValueError:timedelta标量的类型无效:
@Junkrat-Use
pd.to_timedelta(df['Time'].astype(str))