gpt4 book ai didi

python - Python 中日期时间列的序列问题

转载 作者:行者123 更新时间:2023-12-01 08:21:51 25 4
gpt4 key购买 nike

将多个文件连接成一个大文件后,日期时间列的顺序与原始文件不符。

我有许多气象数据的 .csv 文件。一日一档。间隔5分钟。原始文件使用以下日期时间格式:24.03.2016 18:35。

我使用以下方法连接所有文件:

    globbed_files = glob.glob(path + "\*Raw2*.csv")
data = []

for csv in globbed_files:
df = pd.read_csv(csv, encoding = "ISO-8859-1", header = 0,
low_memory=False)
data.append(df)

combined = pd.concat(data, ignore_index=True, sort=True)
combined['DateTime'] = pd.to_datetime(combined['DateTime'])
combined.set_index('DateTime', inplace=True)
combined.index = combined.index.map(lambda t: t.strftime('%d/%m/%Y %H:%M:%S'))

combined.to_csv(path + "\year1.txt", sep='\t', header=True, index=True)

结果是三个文件。每个文件包含特定年份的数据。我根据原始文件检查了所有文件的日期时间顺序是否正确。

因为我不知道如何将原始的日期时间格式转换为Python可以理解的日期时间格式,所以我手动完成了。我将日期时间列复制到记事本中,添加第二个(:00),删除不必要的空格,替换所有“。”使用“/”,anf 最终将其复制粘贴回 csv 中。为了确保在 csv 上,我再次使用 ecxel 内置日期格式作为日期时间列。新的日期时间格式为:24/03/2016 18:35:00。

接下来,使用新的日期时间格式,我将“年度文件”连接成一个最终的大文件。

但是发生了什么? Python 通过交换日期和月份来读取日期时间不一致的情况。因此,08/03/2016 18:35:00 可能会被错误地读为第 8 个月和第 3 天,或者正确地读为第 8 个月第 3 天。现在,我的新文件未根据原始文件进行排序。

感谢任何帮助。

最佳答案

应简化解决方案以将参数添加到 read_csv ,最后将索引转换为自定义格式DatetimeIndex.strftime :

globbed_files = glob.glob(path + "\*Raw2*.csv")
data = []

for csv in globbed_files:
df = pd.read_csv(csv,
encoding = "ISO-8859-1",
header = 0,
low_memory=False,
parse_dates=['DateTime'], #convert column to datetimes
dayfirst=True, #avoid inconsistency for specify first value is day
index_col=['DateTime'] #create DatetimeIndex
)
data.append(df)

combined = pd.concat(data, sort=True)

combined.index = combined.index.strftime.strftime('%d/%m/%Y %H:%M:%S')

combined.to_csv(path + "\year1.txt", sep='\t', header=True, index=True)

关于python - Python 中日期时间列的序列问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54593371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com