![]() |
to_numpy() works in jupyter notebook, but not in python script - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Data Science (https://python-forum.io/forum-44.html) +--- Thread: to_numpy() works in jupyter notebook, but not in python script (/thread-19392.html) |
to_numpy() works in jupyter notebook, but not in python script - bluefrog - Jun-26-2019 Hi I am unsure why the following works in a jupyter notebook, but not in a python script that I am run from the Linux command line: #!/usr/bin/python3 import pandas as pd import numpy as np # SWAPPING COLUMNS dates=pd.date_range('1/1/2019',periods=12) df=pd.DataFrame(np.random.randn(12,4),index=dates,columns=['A','B','C','D']) df_copy=df.copy() # assign, after converting to raw data df_copy.loc[: ['B', 'A']]=df_copy[['A','B']].to_numpy() print(df_copy)Any suggestions ? RE: to_numpy() works in jupyter notebook, but not in python script - Windspar - Jun-27-2019 List errors . RE: to_numpy() works in jupyter notebook, but not in python script - scidam - Jun-27-2019 As it could be seen from Pandas official docs .to_numpy was added in v.0.24.0. You are likely using different versions when executing a script and ipynb-file.
RE: to_numpy() works in jupyter notebook, but not in python script - Windspar - Jun-27-2019 to_numpy works fine. dfn = df[['B', 'A']].to_numpy(copy=True)This line of code doesn't work for me. # assign, after converting to raw data df_copy.loc[: ['B', 'A']]=df_copy[['A','B']].to_numpy() RE: to_numpy() works in jupyter notebook, but not in python script - scidam - Jun-27-2019 It is very important to post your error messages! I see you are missing a comma in .loc , should be loc[:, ...] . And, what are you trying to do? Switch columns order? You can access underlying numpy array by df.values .
RE: to_numpy() works in jupyter notebook, but not in python script - bluefrog - Jun-27-2019 Thanks for spotting the missing comma. The error that appears is as follows: Traceback (most recent call last): File "./dataframe_swap_columns.py", line 23, in <module> df_copy.loc[:, ['B', 'A']]=df_copy[['A','B']].to_numpy() File "/usr/lib/python3/dist-packages/pandas/core/generic.py", line 4378, in __getattr__ return object.__getattribute__(self, name) AttributeError: 'DataFrame' object has no attribute 'to_numpy'But as I mentioned, it works in a jupyter notebook. How can I print the version of pandas in a Python script? Maybe that is the issue. RE: to_numpy() works in jupyter notebook, but not in python script - snippsat - Jun-27-2019 import pandas as pd pd.__version__As mention by @scidam you need 0.24 --> for .to_numpy() to work.I guess if you just remove .to_numpy() it will work on earlier version.Upgrade: pip3 install --upgrade pandasOr as me i have pip point to Python 3.7.Test from command line with -V tom@tom:~$ python -V Python 3.7.3 tom@tom:~$ pip -V pip 19.1 from /home/tom/.pyenv/versions/3.7.3/lib/python3.7/site-packages/pip (python 3.7) RE: to_numpy() works in jupyter notebook, but not in python script - bluefrog - Jun-27-2019 I have 0.23 on my Ubuntu Linux, but 0.24 on my miniconda environment. I used sudo apt-get install in an attempt to update pandas to 0.24, but I get this message: $ sudo apt-get install python3-pandas Reading package lists... Done Building dependency tree Reading state information... Done python3-pandas is already the newest version (0.23.3+dfsg-3ubuntu1). The following packages were automatically installed and are no longer required: .. .... cosmic Use 'sudo apt autoremove' to remove them. 0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.So it won't update to 0.24. At least I know what the issue now. Thanks for your help. thanks for the upgrade info. I had to install pip first using sudo apt-get install python3-pip, and then I was able to "$ pip3 install --upgrade pandas". So now the script works. thanks to everybody for your help. |