- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经解析了许多日期时间并将它们转换为不同的时区。但是,当尝试使用 df.to_excel 将数据帧写入 Excel 文件时,我收到以下错误:“时间戳减法必须具有相同的时区或没有时区”。
查看不同的线程,我尝试使用 tz_localize(None) 和 tz_convert 将日期时间转换为 UTC,然后写入文件,但这不起作用。
#C:\Users\cgarrido\AppData\Local\Programs\Python\Python37\Scripts>
import pandas as pd
from pandas import Timestamp
import pytz
from pytz import all_timezones
import datetime
import xlrd
import xlwt
data = pd.read_excel('lab.xls')
data = data.drop_duplicates('Site UP')
data = data.drop(data[data.Duration == 0].index)
data.to_excel('no_duplicates_no_zeroes.xls')
data['Site DOWN'] = pd.to_datetime(data['Site DOWN'])
data['Site UP'] = pd.to_datetime(data['Site UP'])
def conversion_function(x: pd.Series) -> pd.Timestamp:
zones = {'Atlantic': 'Canada/Atlantic',
'Central': 'US/Central',
'Eastern': "US/Eastern",
'Mountain': 'US/Mountain',
'Pacific': 'US/Pacific'}
raw_time = pd.Timestamp(x[1])
loc_raw_time = raw_time.tz_localize("US/Pacific")
return loc_raw_time.tz_convert(zones[x[0]])
data['Adjusted_Down'] = data[['Time_Zone', 'Site DOWN']].apply(conversion_function, axis=1)
data['Adjusted_Up'] = data[['Time_Zone', 'Site UP']].apply(conversion_function, axis=1)
data.to_excel('no_duplicates_no_zeroes.xls')
这是一个数据框示例(在转换日期之前)
Region Time_Zone Site DOWN Site UP Duration
US Mountain 07/22/19 01:19 07/22/19 01:23 4
Canada Central 07/22/19 01:19 07/22/19 01:23 4
US Eastern 07/21/19 22:50 07/21/19 22:52 2
US Eastern 07/16/19 11:26 07/16/19 11:29 3
US Pacific 07/25/19 16:47 07/25/19 16:50 3
US Pacific 07/22/19 13:13 07/22/19 13:15 2
US Pacific 07/22/19 01:20 07/22/19 01:22 2
US Central 06/30/19 11:56 06/30/19 11:58 2
US Mountain 07/29/19 03:14 07/29/19 03:16 2
US Mountain 07/22/19 01:19 07/22/19 01:23 4
Canada Atlantic 07/22/19 01:19 07/22/19 01:21 2
Canada Eastern 07/03/19 06:51 07/03/19 11:34 283
US Eastern 07/21/19 16:51 07/21/19 16:53 2
US Eastern 07/21/19 13:43 07/21/19 16:31 168
Canada Atlantic 07/22/19 01:19 07/22/19 01:21 2
US Mountain 07/18/19 01:30 07/18/19 01:58 28
US Central 07/22/19 01:20 07/22/19 01:22 2
Canada Central 07/17/19 22:17 07/17/19 22:21 4
Canada Central 07/15/19 06:14 07/15/19 08:42 148
Canada Mountain 07/22/19 01:19 07/22/19 01:23 4
Canada Mountain 07/22/19 01:18 07/22/19 01:21 3
Canada Central 07/22/19 01:20 07/22/19 01:22 2
Canada Central 07/17/19 09:26 07/17/19 09:28 2
Canada Atlantic 07/30/19 18:18 07/31/19 04:44 626
Canada Atlantic 07/29/19 21:20 07/29/19 21:22 2
Canada Atlantic 07/25/19 03:41 07/25/19 03:43 2
Canada Atlantic 07/22/19 01:20 07/22/19 01:23 3
Canada Atlantic 07/21/19 22:50 07/21/19 22:50 0
Canada Eastern 07/24/19 01:57 07/24/19 03:55 118
因此,在尝试将数据框保存到 Excel 工作表时,会出现错误消息。
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
data.to_excel('final.xls', 'a+')
File "C:\Users\cgarrido\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\generic.py", line 2127, in to_excel
engine=engine)
File "C:\Users\cgarrido\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\io\formats\excel.py", line 662, in write
freeze_panes=freeze_panes)
File "C:\Users\cgarrido\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\io\excel.py", line 1720, in write_cells
val, style)
File "C:\Users\cgarrido\AppData\Local\Programs\Python\Python37\lib\site-packages\xlwt\Worksheet.py", line 1088, in write
self.row(r).write(c, label, style)
File "C:\Users\cgarrido\AppData\Local\Programs\Python\Python37\lib\site-packages\xlwt\Row.py", line 244, in write
date_number = self.__excel_date_dt(label)
File "C:\Users\cgarrido\AppData\Local\Programs\Python\Python37\lib\site-packages\xlwt\Row.py", line 99, in __excel_date_dt
delta = date - epoch
File "pandas\_libs\tslibs\timestamps.pyx", line 413, in pandas._libs.tslibs.timestamps._Timestamp.__sub__
TypeError: Timestamp subtraction must have the same timezones or no timezones
最佳答案
尝试切换 tz_localize
和 tz_convert
的这些参数 - 您应该首先获得与实际时区一起显示的时区感知时间,然后将其转换为“美国/太平洋地区” “:
raw_time = pd.Timestamp(x[1])
loc_raw_time = raw_time.tz_localize(zones[x[0]])
return loc_raw_time.tz_convert("US/Pacific").replace(tzinfo=None)
关于python - 时间戳相减必须具有相同时区或没有时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57402370/
这个问题已经有答案了: Diff of two Dataframes (8 个回答) 已关闭 4 年前。 我有 2 个数据框(df_a 和 df_b),有 2 列:“动物”和“名称”。 在更大的数据框
如果我得到以下数字字符串,是否可以使用 LINQ 查询将这些数字一起加/减? string numbers = "1 + 1, 2 - 1, 3 + 3"; 所以我最终会得到这样的东西: 字符串数字
具有以下对象列表: public class Example { public string Local { get; set; } public string Type { get;
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
#include #include float sum (float *A, int len) // sum of table of floats { float ss = 0.0;
我正在阅读这篇博文:https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times-by-70/ 我很困惑: size_t len = end
我正在阅读这篇博文:https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times-by-70/ 我很困惑: size_t len = end
这个问题已经有答案了: Pointer Arithmetic In C (2 个回答) Pointer subtraction confusion (8 个回答) 已关闭 4 年前。 int vect
我知道这可能是个愚蠢的问题,但我遇到了一些麻烦,我很惭愧,但我真的不知道如何做到。我想加减两个以整数形式给出的“小时”。 #include #include #include using nam
大家好 StackOverflow.. 这个网站相当新,但我得到了很好的反馈!所以首先要感谢大家! 我想做的是类似于wonga的事情 https://www.wonga.com/ 但是随着值的协同工作
我是一名优秀的程序员,十分优秀!