来自csv数据的熊猫图失败

时间:2016-02-09 17:27:26

标签: python csv pandas plot

我正在尝试从Pandas中的csv文件中分散绘制一些数据,但是我收到了错误。

输入文件如下所示:

time,SPOT
2016-02-04 16:01:10.785000,3.6729
2016-02-04 16:01:11,4.2344

我用来绘制的代码:

import pandas as pd
df = pd.read_csv('file.csv')
df.plot(kind='scatter', x='time', y='SPOT')

然后我收到此错误:

    Traceback (most recent call last):
      File "C:\installed\Python27\lib\site-packages\IPython\core\interactiveshell.py", line 3066, in run_code
        exec(code_obj, self.user_global_ns, self.user_ns)
      File "<ipython-input-51-ff49e6461746>", line 1, in <module>
        df.plot(kind='scatter', x='time', y='SPOT')
      File "C:\installed\Python27\lib\site-packages\pandas\tools\plotting.py", line 2477, in plot_frame
        **kwds)
      File "C:\installed\Python27\lib\site-packages\pandas\tools\plotting.py", line 2317, in _plot
        plot_obj.generate()
      File "C:\installed\Python27\lib\site-packages\pandas\tools\plotting.py", line 923, in generate
        self._make_plot()
      File "C:\installed\Python27\lib\site-packages\pandas\tools\plotting.py", line 1445, in _make_plot
        scatter = ax.scatter(data[x].values, data[y].values, c=c_values,
      File "C:\installed\Python27\lib\site-packages\pandas\core\frame.py", line 1780, in __getitem__
        return self._getitem_column(key)
      File "C:\installed\Python27\lib\site-packages\pandas\core\frame.py", line 1787, in _getitem_column
        return self._get_item_cache(key)
      File "C:\installed\Python27\lib\site-packages\pandas\core\generic.py", line 1068, in _get_item_cache
        values = self._data.get(item)
      File "C:\installed\Python27\lib\site-packages\pandas\core\internals.py", line 2849, in get
        loc = self.items.get_loc(item)
      File "C:\installed\Python27\lib\site-packages\pandas\core\index.py", line 1402, in get_loc
        return self._engine.get_loc(_values_from_object(key))
      File "pandas\index.pyx", line 134, in pandas.index.IndexEngine.get_loc (pandas\index.c:3807)
      File "pandas\index.pyx", line 154, in pandas.index.IndexEngine.get_loc (pandas\index.c:3687)
      File "pandas\hashtable.pyx", line 696, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12310)
      File "pandas\hashtable.pyx", line 704, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12261)
KeyError: 'time'

Q1。我想知道我的时间序列是否不允许在时间列中包含毫秒?

Q2。有时,第二列中的时间没有毫秒,当它为零时可以推测。 我试图添加一个date_parser,但它没有帮助。

date_parser = lambda x: pd.datetime.strptime(x, '%Y-%m-%d %H:%M:%S.%f')
df = pd.read_csv('file.csv', date_parser=date_parser)

我正在使用这个python版本 2.7.10(默认,2015年5月23日,09:40:32)[MSC v.1500 32位(英特尔)]&#39;

和pandas 0.15.2

1 个答案:

答案 0 :(得分:3)

散点图doesn't work with datetime values.但是,您可以通过执行常规折线图并将style设置为.

来解决此问题
df.plot(x='time', y='SPOT', style='.')

嘲笑更多的数据,我得到一个这样的情节(你需要弄乱标签样式,但你可以了解它的绘制方式):

Sample work around