python画熊猫代码_Python int太大而无法转换为C long-绘制熊猫日...

我通过遵循本文所接受答案中显示的方法找到最近的时间戳来合并两个数据集:

但是,当我尝试绘制结果时,我遇到了错误:

`Traceback (most recent call last):

File "C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\formatters.py", line 332, in __call__

return printer(obj)

File "C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\pylabtools.py", line 237, in

png_formatter.for_type(Figure, lambda fig: print_figure(fig, 'png', **kwargs))

File "C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\pylabtools.py", line 121, in print_figure

fig.canvas.print_figure(bytes_io, **kw)

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\backend_bases.py", line 2208, in print_figure

**kwargs)

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py", line 507, in print_png

FigureCanvasAgg.draw(self)

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py", line 430, in draw

self.figure.draw(self.renderer)

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper

return draw(artist, renderer, *args, **kwargs)

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\figure.py", line 1295, in draw

renderer, self, artists, self.suppressComposite)

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\image.py", line 138, in _draw_list_compositing_images

a.draw(renderer)

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper

return draw(artist, renderer, *args, **kwargs)

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 2399, in draw

mimage._draw_list_compositing_images(renderer, self, artists)

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\image.py", line 138, in _draw_list_compositing_images

a.draw(renderer)

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper

return draw(artist, renderer, *args, **kwargs)

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axis.py", line 1133, in draw

ticks_to_draw = self._update_ticks(renderer)

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axis.py", line 974, in _update_ticks

tick_tups = list(self.iter_ticks())

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axis.py", line 917, in iter_ticks

majorLocs = self.major.locator()

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\dates.py", line 1054, in __call__

self.refresh()

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\dates.py", line 1074, in refresh

dmin, dmax = self.viewlim_to_dt()

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\dates.py", line 832, in viewlim_to_dt

return num2date(vmin, self.tz), num2date(vmax, self.tz)

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\dates.py", line 441, in num2date

return _from_ordinalf(x, tz)

File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\dates.py", line 256, in _from_ordinalf

dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC)

OverflowError: Python int too large to convert to C long

`

iv复制并粘贴了帖子中接受的答案,但遇到了同样的错误.

我的数据如下所示(已被合并):

cm_time_4 log_time_1

2017-06-25 10:30:35 2017-06-25 10:30:31

2017-06-25 10:50:35 2017-06-25 10:50:31

2017-06-25 11:10:35 2017-06-25 11:10:31

2017-06-25 11:30:35 2017-06-25 11:30:31

2017-06-25 11:50:35 2017-06-25 11:50:31

2017-06-25 12:10:35 2017-06-25 12:10:31

2017-06-25 12:30:35 2017-06-25 12:30:31

2017-06-25 12:50:35 2017-06-25 12:50:31

2017-06-25 13:10:35 2017-06-25 13:10:31

2017-06-25 13:30:35 2017-06-25 13:30:31

2017-06-25 13:50:35 2017-06-25 13:50:31

我的代码如下所示:

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import scipy.io.netcdf as netcdf

readcsv = pd.read_csv(filename,parse_dates={'timestamp':['date','time']},index_col=['timestamp'])

# round off times to the nearest second

log_time = readcsv.index.round('1s')

fh = netcdf.netcdf_file(nc, mmap=False)

cm_time = fh.variables['time'][:]

ref_time = pd.datetime(year=2017, month=6, day=25, hour=10, minute=30, second=35) # Reference time

cm_time_2 = [ref_time + pd.Timedelta(minutes=np.float(i)) for i in cm_time] # Add seconds to reference time

cm_time_3 = pd.to_datetime(cm_time_2)

idx = np.searchsorted(log_time, cm_time_3) - 1

mask = idx >= 0

df = pd.DataFrame({"log_time_1":log_time[idx][mask], "cm_time_4":cm_time_3[mask]})

# Plot

plt.figure(figsize=(18, 4))

plt.vlines(pd.Series(log_time),0,1,colors="g")

plt.vlines(df.log_time_1, 0.3, 0.7, colors="r", lw=2)

plt.vlines(df.cm_time_4, 0.3, 0.7, colors="b", lw=2)

我在Windows 10上使用python 3.6

如何解决错误?

非常感谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值