如何停止数据帧转换时间

时间:2019-06-21 17:07:52

标签: python pandas

我正在使用pandas.read_rsq_query()方法将下面显示的SQL查询转换为数据框。

这是查询:

SELECT begin_ts, process_name, avg(count) FROM ecn_stats_2019_06_21 WHERE process_name LIKE 'matching_%_gw' and name = 'raw_msg_count' and begin_ts = '2019-06-21 12:55:00' GROUP BY begin_ts, process_name ORDER BY begin_ts, process_name;

当我在终端中运行SQL查询时,我得到以下输出:

begin_ts        |  process_name  |         avg
------------------------+----------------+----------------------
 2019-06-21 12:55:00-04 | matching_01_gw |  252722.250000000000
 2019-06-21 12:55:00-04 | matching_02_gw |  233463.000000000000
 2019-06-21 12:55:00-04 | matching_03_gw |  287673.666666666667
 2019-06-21 12:55:00-04 | matching_04_gw |  201417.000000000000
 2019-06-21 12:55:00-04 | matching_05_gw |  243640.500000000000
 2019-06-21 12:55:00-04 | matching_06_gw |  235529.333333333333
 2019-06-21 12:55:00-04 | matching_07_gw |  203518.666666666667
 2019-06-21 12:55:00-04 | matching_08_gw |  266112.666666666667
 2019-06-21 12:55:00-04 | matching_09_gw | 1066127.000000000000
 2019-06-21 12:55:00-04 | matching_10_gw |  734972.000000000000
 2019-06-21 12:55:00-04 | matching_11_gw |  237903.000000000000
 2019-06-21 12:55:00-04 | matching_12_gw |  238116.000000000000
(12 rows)

但是结果数据帧看起来像这样:

                    begin_ts    process_name           avg
0  2019-06-21 16:55:00+00:00  matching_01_gw  2.527222e+05
1  2019-06-21 16:55:00+00:00  matching_02_gw  2.334630e+05
2  2019-06-21 16:55:00+00:00  matching_03_gw  2.876737e+05
3  2019-06-21 16:55:00+00:00  matching_04_gw  2.014170e+05
4  2019-06-21 16:55:00+00:00  matching_05_gw  2.436405e+05
5  2019-06-21 16:55:00+00:00  matching_06_gw  2.355293e+05
6  2019-06-21 16:55:00+00:00  matching_07_gw  2.035187e+05
7  2019-06-21 16:55:00+00:00  matching_08_gw  2.661127e+05
8  2019-06-21 16:55:00+00:00  matching_09_gw  1.066127e+06
9  2019-06-21 16:55:00+00:00  matching_10_gw  7.349720e+05
10 2019-06-21 16:55:00+00:00  matching_11_gw  2.379030e+05
11 2019-06-21 16:55:00+00:00  matching_12_gw  2.381160e+05

当我从SQL查询中打印self.endTime变量时,我得到

 self.endTime: 2019-06-21 12:55:00

如何阻止数据框将日期时间对象转换为UTC? 如上所述,我尝试从datetime对象的末尾删除“ -04”,但是没有运气。

编辑:使用df ['begin_ts'] = df ['begin_ts']。dt.tz_convert('US / Eastern')解决了我的问题

关注问题:

如何告诉数据框不要使用科学计数法?

1 个答案:

答案 0 :(得分:0)

一种选择是尝试使用格式字符串设置parse_dates参数,以防止设置时区。

另一方面,获取数据框后,您可以使用以下方法删除时区:

df['begin_ts'] = df['begin_ts'].dt.tz_localize(None)

希望这会有所帮助!