日期时间格式问题 Python
Date Time Format Issues Python
我目前遇到日期时间格式问题,尤其是将字符串输入转换为正确的 python 日期时间格式
Date/Time Dry_Temp[C] Wet_Temp[C] Solar_Diffuse_Rate[[W/m2]] \
0 01/01 00:10:00 8.45 8.237306 0.0
1 01/01 00:20:00 7.30 6.968360 0.0
2 01/01 00:30:00 6.15 5.710239 0.0
3 01/01 00:40:00 5.00 4.462898 0.0
4 01/01 00:50:00 3.85 3.226244 0.0
这些是我目前的时间戳示例,我尝试拆分日期和时间,这样我现在有以下列:
WC_Humidity[%] WC_Htgsetp[C] WC_Clgsetp[C] Date Time
0 55.553640 18 26 1900-01-01 00:10:00
1 54.204342 18 26 1900-01-01 00:20:00
2 51.896272 18 26 1900-01-01 00:30:00
3 49.007770 18 26 1900-01-01 00:40:00
4 45.825810 18 26 1900-01-01 00:50:00
我已经设法将年份转换为日期时间格式,但仍有 2 个问题需要解决:
- 1900年没有记录数据,想把Date里的年份改一下,
- 我在尝试将时间转换为时间 datetime python 格式时收到以下错误
pandas/_libs/tslibs/strptime.pyx in pandas._libs.tslibs.strptime.array_strptime()
ValueError: time data '00:00:00' does not match format ' %m/%d %H:%M:%S' (match)
我试过 24:00:00,但是 python 也不喜欢...
偏好:
如果它们都在同一个单元格中,而不必将这些信息分成两列,我会更愿意。
我还想去掉秒数据,因为数据是以 10 分钟的间隔记录的,所以在我的情况下不需要秒。
如有任何帮助,我们将不胜感激。
1900年没有记录数据,想把Date中的年份改一下,
datetime.datetime.replace
datetime.datetime
实例的方法用于此任务考虑以下示例:
import pandas as pd
df = pd.DataFrame({"when":pd.to_datetime(["1900-01-01","1900-02-02","1900-03-03"])})
df["when"] = df["when"].apply(lambda x:x.replace(year=2000))
print(df)
产出
when
0 2000-01-01
1 2000-02-02
2 2000-03-03
请注意,它也可以在没有 pandas
的情况下使用,例如
import datetime
d = datetime.datetime.strptime("","") # use all default values which result in midnight of Jan 1 of year 1900
print(d) # 1900-01-01 00:00:00
d = d.replace(year=2000)
print(d) # 2000-01-01 00:00:00
我目前遇到日期时间格式问题,尤其是将字符串输入转换为正确的 python 日期时间格式
Date/Time Dry_Temp[C] Wet_Temp[C] Solar_Diffuse_Rate[[W/m2]] \
0 01/01 00:10:00 8.45 8.237306 0.0
1 01/01 00:20:00 7.30 6.968360 0.0
2 01/01 00:30:00 6.15 5.710239 0.0
3 01/01 00:40:00 5.00 4.462898 0.0
4 01/01 00:50:00 3.85 3.226244 0.0
这些是我目前的时间戳示例,我尝试拆分日期和时间,这样我现在有以下列:
WC_Humidity[%] WC_Htgsetp[C] WC_Clgsetp[C] Date Time
0 55.553640 18 26 1900-01-01 00:10:00
1 54.204342 18 26 1900-01-01 00:20:00
2 51.896272 18 26 1900-01-01 00:30:00
3 49.007770 18 26 1900-01-01 00:40:00
4 45.825810 18 26 1900-01-01 00:50:00
我已经设法将年份转换为日期时间格式,但仍有 2 个问题需要解决:
- 1900年没有记录数据,想把Date里的年份改一下,
- 我在尝试将时间转换为时间 datetime python 格式时收到以下错误
pandas/_libs/tslibs/strptime.pyx in pandas._libs.tslibs.strptime.array_strptime()
ValueError: time data '00:00:00' does not match format ' %m/%d %H:%M:%S' (match)
我试过 24:00:00,但是 python 也不喜欢...
偏好: 如果它们都在同一个单元格中,而不必将这些信息分成两列,我会更愿意。 我还想去掉秒数据,因为数据是以 10 分钟的间隔记录的,所以在我的情况下不需要秒。
如有任何帮助,我们将不胜感激。
1900年没有记录数据,想把Date中的年份改一下,
datetime.datetime.replace
datetime.datetime
实例的方法用于此任务考虑以下示例:
import pandas as pd
df = pd.DataFrame({"when":pd.to_datetime(["1900-01-01","1900-02-02","1900-03-03"])})
df["when"] = df["when"].apply(lambda x:x.replace(year=2000))
print(df)
产出
when
0 2000-01-01
1 2000-02-02
2 2000-03-03
请注意,它也可以在没有 pandas
的情况下使用,例如
import datetime
d = datetime.datetime.strptime("","") # use all default values which result in midnight of Jan 1 of year 1900
print(d) # 1900-01-01 00:00:00
d = d.replace(year=2000)
print(d) # 2000-01-01 00:00:00