我有一系列的文件,其中的日期是在不同的格式,但其中一种格式最终没有被正确识别, Dataframe 将被连接,以生成只有一个,因此日期需要在相同的格式。基本上我阅读的文件是这样的:
for i in range(len(stations)):
arq1 = pd.read_csv('./'+database_folder+'/'+group+'/'+stations[i]+".csv", index_col = 0)
arq1.index=pd.to_datetime(arq1.index, format='%Y-%m-%d')
arq1.index=pd.to_datetime(arq1.index, format='%Y%m%d')
group
和stations
它们只是用于访问归档的列表。
我在想:
try:
arq1.index=pd.to_datetime(arq1.index, format='%Y-%m-%d')
except:
arq1.index=pd.to_datetime(arq1.index, format='%Y%m%d')
但我不知道这样行不行完全接受建议。
数据示例。 Dataframe 没有相同的日期范围:
一个二个一个一个
2条答案
按热度按时间yrdbyhpb1#
以下方法应该有效:
基本上,强制索引为字符串而不是数字,然后检查值是否包含破折号(
-
)并选择适当的格式。输出:
ilmyapht2#
因为每个日期时间的标题不同:例如
'Date'
和'TIMESTAMP'
,您可以按以下方式使用转换器:
代码:
converters
:提供一个字典,解释遇到特定标题时使用哪个转换器。使用的格式为:heading: converter
,用于您需要的每个标题和转换器。例如,.'Date': date_converter
,请求对具有Date
标题的列使用date_converter
函数。注:
如果需要,可以使用lambda函数: