【问题标题】:Convert a date with string format to timestap in a loop在循环中将具有字符串格式的日期转换为时间戳
【发布时间】:2021-11-06 03:49:03
【问题描述】:
我有一个带日期的字典,有些是时间戳,有些是字符串。
我想迭代一个字典。如果 val 与 sting 一样,则将其转换为时间戳。如果不只是打印它。
import pandas as pd
ts = pd.Timestamp('2017-01-01T12')
date = '2017-01-01'
timedict = {
"timestamp": ts,
"date": date
}
for key, val in timedict.items():
if val == #string:
val.strftime('%d.%m.%Y')
print(val)
else:
print(val)
【问题讨论】:
标签:
python
pandas
date
timestamp
【解决方案1】:
这样的?
使用datetime对字符串进行解析和格式化
from datetime import datetime
import pandas as pd
ts = pd.Timestamp("2017-01-01T12")
date = "2017-01-01"
timedict = {
"timestamp": ts,
"date": date,
}
for key, val in timedict.items():
if isinstance(val, str):
val = datetime.strptime(val, "%Y-%m-%d")
val = val.strftime("%d.%m.%Y")
print(val)
else:
print(val)
哪些输出:
2017-01-01 12:00:00
01.01.2017
或者,由于您已经在使用 pandas,您可以从解析的 datetime 对象创建一个 pd.Timestamp:
for key, val in timedict.items():
if isinstance(val, str):
val = pd.Timestamp(datetime.strptime(val, "%Y-%m-%d"))
print(val)
else:
print(val)