Skip to content

Commit 9ba7977

Browse files
committed
1 parent 8b497e4 commit 9ba7977

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

pandas/tests/groupby/test_groupby.py

+14
Original file line numberDiff line numberDiff line change
@@ -5725,6 +5725,20 @@ def test_group_shift_with_null_key(self):
57255725

57265726
assert_frame_equal(result, expected)
57275727

5728+
def test_pivot_table_values_key_error(self):
5729+
# This test is designed to replicate the error in issue #14938
5730+
df = pd.DataFrame({'eventDate':
5731+
pd.date_range(pd.datetime.today(),
5732+
periods=20, freq='M').tolist(),
5733+
'thename': range(0, 20)})
5734+
5735+
df['year'] = df.set_index('eventDate').index.year
5736+
df['month'] = df.set_index('eventDate').index.month
5737+
5738+
with self.assertRaises(KeyError):
5739+
df.reset_index().pivot_table(index='year', columns='month',
5740+
values='badname', aggfunc='count')
5741+
57285742
def test_agg_over_numpy_arrays(self):
57295743
# GH 3788
57305744
df = pd.DataFrame([[1, np.array([10, 20, 30])],

pandas/tools/pivot.py

+4
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,10 @@ def pivot_table(data, values=None, index=None, columns=None, aggfunc='mean',
106106
else:
107107
values_multi = False
108108
values = [values]
109+
# GH14938 Make sure values are in data
110+
for i in values:
111+
if i not in data:
112+
raise KeyError(i)
109113

110114
to_filter = []
111115
for x in keys + values:

0 commit comments

Comments
 (0)