看起来像这样
time
0 10
1 2321
2 845
我需要将它们转换为日期时间。我已经尝试过
pd.to_datetime(df.Time, format='%H%M')
但是它给出了“时间数据10与格式'%H%M'(匹配)不匹配”
谢谢
预期输出
time
0 00:10
1 23:21
2 08:45
我需要这些作为日期时间,这样我就可以每小时制造一个垃圾箱。
time 0 1 2 3 4 5 6 7 8 ... 23
0 00:10 1
1 23:21 1
2 08:45 1
答案 0 :(得分:2)
修改后,我相信您需要
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.4.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.2.3.Final</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
答案 1 :(得分:0)
ser = pd.Series([10,2321,845]
print(ser)
0 10
1 2321
2 845
dtype: int64
将整数转换为0预先填充的格式,然后转换为日期时间。
print(pd.to_datetime(ser.apply(lambda x: '{0:0>4}'.format(x)), format='%H%M').dt.strftime("%H:%M"))
0 00:10
1 23:21
2 08:45
dtype: object
答案 2 :(得分:0)
使用zfill
:
pd.to_datetime(df.time.astype(str).str.zfill(4), format='%H%M').dt.strftime('%H:%M')
0 00:10
1 23:21
2 08:45
Name: time, dtype: object
演示为什么可行:
df.time.astype(str).str.zfill(4)
0 0010
1 2321
2 0845
Name: time, dtype: object
zfill
将根据需要用零填充时间,使您可以将日期整整转换为日期时间。
要获得最终所需的输出,可以将Categorical
与get_dummies
一起使用:
s = pd.to_datetime(df.time.astype(str).str.zfill(4), format='%H%M').dt.strftime('%H:%M')
categories = pd.Categorical(values=s.dt.hour, categories=np.arange(24))
pd.get_dummies(categories)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
2 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0