如何遍历字典并将字符串格式日期转换为Timestamp(时间戳)
解决字典中日期字符串与Timestamp类型的统一处理问题
首先,咱们先明确你的需求:遍历一个混合了pandas.Timestamp对象和日期字符串的字典,遇到字符串格式的日期就把它转换成Timestamp类型,已经是Timestamp的直接打印输出。
你的原代码存在语法和逻辑上的问题,我帮你修正并优化了,下面是完整的可运行代码:
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): # 将字符串日期转换为Timestamp类型 converted_val = pd.to_datetime(val) print(converted_val) else: # 已经是Timestamp类型,直接打印 print(val)
关键修正点说明:
- 类型判断修正:原代码里
if val == #string:是完全错误的语法,Python中判断对象类型的标准方式是用isinstance(val, str)来识别字符串类型。 - 转换逻辑修正:你之前写的
val.strftime('%d.%m.%Y')是把Timestamp转成指定格式的字符串,和需求完全相反。要把字符串转成Timestamp,应该用pd.to_datetime()方法,它能自动识别绝大多数常见的日期字符串格式。 - 结果输出修正:转换后的结果需要用变量保存后再打印,否则原字符串不会被替换,你会发现输出还是原来的字符串内容。
运行这段代码后,你会得到两个Timestamp类型的输出:
2017-01-01 12:00:00 2017-01-01 00:00:00
如果需要把转换后的Timestamp输出成指定格式的字符串(比如dd.mm.YYYY),可以在打印时加上strftime()处理:
print(converted_val.strftime('%d.%m.%Y'))
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

