pandas - 添加到绘图时出现 Matplotlib 和 pandas 错误?
问题描述
编辑:添加数据以供参考。
我正在使用 jupyter 实验室并尝试将一些地块添加到现有地块中。我不明白为什么我在这里遇到错误,或者为什么捕获异常会导致输出看起来正确......
ax = dataframe[columns].plot(title=title, ax=ax)
if(not guide_columns == None):
dataframe[guide_columns].plot(linestyle="--", ax=ax)
它运行,我得到一个很长的错误(底部)。但情节仍然发生并且看起来正确。所以我添加了一个 try/except ......
ax = dataframe[columns].plot(title=title, ax=ax)
if(not guide_columns == None):
try:
dataframe[guide_columns].plot(linestyle="--", ax=ax)
except KeyError:
pass
一切似乎都很快乐,但似乎是错误的。我认为这可能与熊猫生成数据帧子集的方式有关?
数据
dataframe["+20% Rate"] = rate_avg * 1.2
dataframe["-20% Rate"] = rate_avg * 0.8
columns = ["Rate (uCi/m^3)", 'Temp (C)', 'Pressure (kPa)',
'Airflow (L/min)', 'DC (V)', 'Battery (V)']
guide_columns = ["+20% Rate", "-20% Rate"]
print(dataframe.head())
ts id sn Rate (uCi/m^3) Temp (C) \
Test Time
0.0 2018-08-13 16:01:57 43367947 336434 257.868 21.3
2.0 2018-08-13 16:01:59 43367948 336434 268.182 21.3
4.0 2018-08-13 16:02:01 43367949 336434 261.251 21.3
6.0 2018-08-13 16:02:03 43367950 336434 261.251 21.3
8.0 2018-08-13 16:02:05 43367951 336434 249.005 21.3
Pressure (kPa) Airflow (L/min) DC (V) Battery (V) +20% Rate \
Test Time
0.0 95 1.6 12.0 11.1 281.312188
2.0 95 1.7 12.0 11.1 281.312188
4.0 94 1.8 12.0 11.1 281.312188
6.0 94 1.8 12.0 11.1 281.312188
8.0 94 1.9 11.9 11.0 281.312188
-20% Rate
Test Time
0.0 187.541459
2.0 187.541459
4.0 187.541459
6.0 187.541459
8.0 187.541459
错误(即使它绘图....):
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/pandas/core/indexes/base.py in
get_loc(self, key, method, tolerance)
3077 try:
-> 3078 return self._engine.get_loc(key)
3079 except KeyError:
pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas/_libs/hashtable_class_helper.pxi in
pandas._libs.hashtable.PyObjectHashTable.get_item()
pandas/_libs/hashtable_class_helper.pxi in
pandas._libs.hashtable.PyObjectHashTable.get_item()
KeyError: True
During handling of the above exception, another exception occurred:
KeyError Traceback (most recent call last)
<ipython-input-25-591dc1863d4e> in <module>()
20 status_log ("Processing " + file)
21 dat = load_data(source_folder + file)
---> 22 analyse(dat, out_folder)
23
24 #Get stop time
<ipython-input-22-7f43f1fe67f2> in analyse(dat, output_folder)
36
37 #Do user plots
---> 38 process_each_sn(sn_records, t_sn, output_folder)
39
40 #Gen statistics on data
<ipython-input-24-4359c5fd8837> in process_each_sn(sn_records, sn,
output_folder)
27 #Plot Average per time
28 #Do 1hr Avg
---> 29 m3100_plot_avg_of_hours(sn_records, sn, 1, output_folder,
y_axis_log=True)
30 #Do 8hr Avg
31 m3100_plot_avg_of_hours(sn_records, sn, 8, output_folder,
y_axis_log=True)
<ipython-input-20-306b064316e1> in m3100_plot_avg_of_hours(dataframe, sn,
hr_avg_time, out_folder, y_axis_log)
108 #Plot avg data for these columns
109 columns = ["Rate (uCi/m^3)", 'Temp (C)', 'Pressure (kPa)',
'Airflow (L/min)', 'DC (V)', 'Battery (V)']
--> 110 m3100_plot_single_sn(avg_data, sn, columns, title, out_folder,
y_axis_log)
111
112 #Convert time stamp to hours for table
<ipython-input-20-306b064316e1> in m3100_plot_single_sn(dataframe, sn,
columns, title, out_folder, guide_columns, y_axis_log, fig_size)
55 ax = dataframe[columns].plot(title="SN: " + str(sn) + " - " +
title, ax=ax)
56 if(not guide_columns == None):
---> 57 dataframe[guide_columns].plot(linestyle="--", ax=ax)
58 #try:
59 #dataframe.loc[:,guide_columns].plot(linestyle="--",
ax=ax)
/usr/local/lib/python3.6/dist-packages/pandas/core/frame.py in
__getitem__(self, key)
2686 return self._getitem_multilevel(key)
2687 else:
-> 2688 return self._getitem_column(key)
2689
2690 def _getitem_column(self, key):
/usr/local/lib/python3.6/dist-packages/pandas/core/frame.py in
_getitem_column(self, key)
2693 # get column
2694 if self.columns.is_unique:
-> 2695 return self._get_item_cache(key)
2696
2697 # duplicate columns & possible reduce dimensionality
/usr/local/lib/python3.6/dist-packages/pandas/core/generic.py in
_get_item_cache(self, item)
2487 res = cache.get(item)
2488 if res is None:
-> 2489 values = self._data.get(item)
2490 res = self._box_item_values(item, values)
2491 cache[item] = res
/usr/local/lib/python3.6/dist-packages/pandas/core/internals.py in get(self,
item, fastpath)
4113
4114 if not isna(item):
-> 4115 loc = self.items.get_loc(item)
4116 else:
4117 indexer = np.arange(len(self.items))
[isna(self.items)]
/usr/local/lib/python3.6/dist-packages/pandas/core/indexes/base.py in
get_loc(self, key, method, tolerance)
3078 return self._engine.get_loc(key)
3079 except KeyError:
-> 3080 return
self._engine.get_loc(self._maybe_cast_indexer(key))
3081
3082 indexer = self.get_indexer([key], method=method,
tolerance=tolerance)
pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas/_libs/hashtable_class_helper.pxi in
pandas._libs.hashtable.PyObjectHashTable.get_item()
pandas/_libs/hashtable_class_helper.pxi in
pandas._libs.hashtable.PyObjectHashTable.get_item()
KeyError: True
解决方案
推荐阅读
- c# - 在 c# windowsform 中将列表放入文本框中
- c# - C# 从 MainForm 管理子窗体
- c# - Asp.Net 中的 jQuery 数据表
- javascript - Rails:使用 javascript 预览文件的 field_tag 无法正常工作
- ruby - 扩展和扩展对象挂钩有什么区别
- azure - 使用 Azure 数据工厂配置问题在文件共享中复制文件
- linux - 在 Linux .NET Core 上生成类似于 Windows 的友好时区名称列表
- bash - 命令替换 - 无效的命令代码 $
- java - 为 Angular/Java 自动生成前端和后端验证
- java - 使用装饰器模式而不添加“不同”行为