You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Just a quick bug report. I'm using psycopg2 with a NamedTupleCursor, which returns namedtuples for rows. I'm trying to use DataFrame.from_records like so:
TypeError Traceback (most recent call last)
/Users/kdevens/source/(etc.) <ipython-input-46-3e705b917abc> in <module>()
----> 1 df = DataFrame.from_records(rows, rows[0]._fields)
/Library/Python/2.6/site-packages/pandas-0.6.1-py2.6-macosx-10.6-universal.egg/pandas/core/frame.pyc in from_records(cls, data, index, exclude, columns, names)
533 columns, sdict = _rec_to_dict(data)
534 else:
--> 535 sdict, columns = _list_to_sdict(data, columns)
536
537 if exclude is None:
/Library/Python/2.6/site-packages/pandas-0.6.1-py2.6-macosx-10.6-universal.egg/pandas/core/frame.pyc in _list_to_sdict(data, columns)
3547 def _list_to_sdict(data, columns):
3548 if isinstance(data[0], tuple):
-> 3549 content = list(lib.to_object_array_tuples(data).T)
3550 else:
3551 # list of lists
/Library/Python/2.6/site-packages/pandas-0.6.1-py2.6-macosx-10.6-universal.egg/pandas/_tseries.so in pandas._tseries.to_object_array_tuples (pandas/src/tseries.c:52160)()
TypeError: Expected tuple, got Record
So it looks like in tseries.c it's doing something like "type(row) == tuple" instead of "isinstance(row, tuple)". For what it's worth, "isinstance(rows[0], tuple)" is true, so the tuples returned by psycopg2 are definitely real namedtuples. Additionally, the following works fine:
In [49]: dictrows = [r._asdict() for r in rows]
In [50]: df = DataFrame.from_dict(dictrows)
So there's no problem with the data, or with DataFrame, just the type check in tseries.c.
Let me know if I can provide any more information! Thanks.
The text was updated successfully, but these errors were encountered:
From user email
Hi there,
Just a quick bug report. I'm using psycopg2 with a NamedTupleCursor, which returns namedtuples for rows. I'm trying to use DataFrame.from_records like so:
df = DataFrame.from_records(rows, rows[0]._fields)
I get the following error:
So it looks like in tseries.c it's doing something like "type(row) == tuple" instead of "isinstance(row, tuple)". For what it's worth, "isinstance(rows[0], tuple)" is true, so the tuples returned by psycopg2 are definitely real namedtuples. Additionally, the following works fine:
So there's no problem with the data, or with DataFrame, just the type check in tseries.c.
Let me know if I can provide any more information! Thanks.
The text was updated successfully, but these errors were encountered: