Python 3 - Zip est un itérateur dans un dataframe de pandas
Je suis à la suite de la Les Pandas de tutoriels
Les tutoriels sont écrits à l'aide de python 2.7 et je suis en train de faire en python 3.4
Voici ma version de détails.
In [11]: print('Python version ' + sys.version)
Python version 3.4.1 |Anaconda 2.0.1 (64-bit)| (default, Jun 11 2014, 17:27:11)
[MSC v.1600 64 bit (AMD64)]
In [12]: print('Pandas version ' + pd.__version__)
Pandas version 0.14.1
J'ai créer le zip comme pour le tutoriel
In [13]: names = ['Bob','Jessica','Mary','John','Mel']
In [14]: births = [968, 155, 77, 578, 973]
In [15]: zip?
Type: type
String form: <class 'zip'>
Namespace: Python builtin
Init definition: zip(self, *args, **kwargs)
Docstring:
zip(iter1 [,iter2 [...]]) --> zip object
Return a zip object whose .__next__() method returns a tuple where
the i-th element comes from the i-th iterable argument. The .__next__()
method continues until the shortest iterable in the argument sequence
is exhausted and then it raises StopIteration.
In [16]: BabyDataSet = zip(names,births)
Mais après la création de la première erreur indique que je ne peux pas voir le contenu du zip.
In [17]: BabyDataSet
Out[17]: <zip at 0x4f28848>
In [18]: print(BabyDataSet)
<zip object at 0x0000000004F28848>
Puis quand je vais pour créer le dataframe-je obtenir ce itérateur d'erreur.
In [21]: df = pd.DataFrame(data = BabyDataSet, columns=['Names', 'Births'])
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-21-636a49c94b6e> in <module>()
----> 1 df = pd.DataFrame(data = BabyDataSet, columns=['Names', 'Births'])
c:\Users\Sayth\Anaconda3\lib\site-packages\pandas\core\frame.py in __init__(self
, data, index, columns, dtype, copy)
255 copy=copy)
256 elif isinstance(data, collections.Iterator):
--> 257 raise TypeError("data argument can't be an iterator")
258 else:
259 try:
TypeError: data argument can't be an iterator
In [22]:
Est-ce un python 3 gotcha où j'ai besoin de faire les choses différemment? Ou autres?
source d'informationauteur sayth
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de changer cette ligne:
:
C'est parce que
zip
maintenant retourne un itérateur en python 3, donc votre message d'erreur. Pour plus de détails, voir: http://www.diveintopython3.net/porting-code-to-python-3-with-2to3.html#zip et https://docs.python.org/3/library/functions.html#zip