Hello, I opened my Python Shell and I wrote the following:
>>> import numpy as np >>> import pandas as pd then I made a function >>> def afunc(aframe): return aframe - aframe.mean(axis=1) and I defined a DataFrame with time as index >>> A = >>> pd.DataFrame(np.random.randn(5,3),columns=['a','b','c'],index=pd.date_range(start='1984-12-20',periods=5)) >>> A a b c 1984-12-20 -0.257916 -0.137923 -0.669796 1984-12-21 -1.632874 -1.850365 1.571715 1984-12-22 1.185828 -0.149839 -1.565930 1984-12-23 -0.757311 0.034627 0.794608 1984-12-24 0.548785 -1.126786 -0.438457 now, if I call the function the following error is generated: >>> afunc(A) Traceback (most recent call last): File "<pyshell#6>", line 1, in <module> afunc(A) File "<pyshell#3>", line 2, in afunc return aframe - aframe.mean(axis=1) File "C:\Python33\lib\site-packages\pandas\core\frame.py", line 217, in f return self._combine_series(other, na_op, fill_value, axis, level) File "C:\Python33\lib\site-packages\pandas\core\frame.py", line 3601, in _combine_series return self._combine_series_infer(other, func, fill_value) File "C:\Python33\lib\site-packages\pandas\core\frame.py", line 3619, in _combine_series_infer FutureWarning) File "C:\Python33\lib\idlelib\PyShell.py", line 60, in idle_showwarning file.write(warnings.formatwarning(message, category, filename, AttributeError: 'NoneType' object has no attribute 'write' then I recall the same function (without any change) and the function works! >>> afunc(A) a b c 1984-12-20 0.097295 0.217289 -0.314584 1984-12-21 -0.995699 -1.213190 2.208890 1984-12-22 1.362475 0.026808 -1.389283 1984-12-23 -0.781285 0.010652 0.770633 1984-12-24 0.887604 -0.787967 -0.099637 Why does this happen? Why I must call the function two times before it finally works? How can I overcome this problem? Many thanks in advance Davide -- https://mail.python.org/mailman/listinfo/python-list