Skip to content

Commit 7dd8bc5

Browse files
committed
Better error message for DataFrame.apply if axis is not 0 or 1
1 parent 5d7e992 commit 7dd8bc5

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

pandas/core/frame.py

+4
Original file line numberDiff line numberDiff line change
@@ -3760,6 +3760,8 @@ def _apply_standard(self, func, axis, ignore_failures=False):
37603760
series_gen = (Series.from_array(arr, index=res_columns, name=name)
37613761
for i, (arr, name) in
37623762
enumerate(izip(values, res_index)))
3763+
else:
3764+
raise ValueError('Axis must be 0 or 1, got %s' % str(axis))
37633765

37643766
keys = []
37653767
results = {}
@@ -3815,6 +3817,8 @@ def _apply_broadcast(self, func, axis):
38153817
target = self
38163818
elif axis == 1:
38173819
target = self.T
3820+
else:
3821+
raise ValueError('Axis must be 0 or 1, got %s' % str(axis))
38183822

38193823
result_values = np.empty_like(target.values)
38203824
columns = target.columns

pandas/tests/test_frame.py

+4
Original file line numberDiff line numberDiff line change
@@ -5239,6 +5239,10 @@ def test_apply(self):
52395239
expected = Series(np.nan, index=self.frame.index)
52405240
assert_series_equal(result, expected)
52415241

5242+
#invalid axis
5243+
df = DataFrame([[1,2,3], [4,5,6], [7,8,9]], index=['a','a','c'])
5244+
self.assertRaises(ValueError, df.apply, lambda x: x, 2)
5245+
52425246
def test_apply_standard_nonunique(self):
52435247
df = DataFrame([[1,2,3], [4,5,6], [7,8,9]], index=['a','a','c'])
52445248
rs = df.apply(lambda s: s[0], axis=1)

0 commit comments

Comments
 (0)