1

如何转置DataFrame返回的 by concat()

df = DataFrame([
            dict(a=1, b=10, c=41),
            dict(a=1, b=20, c=42),
            ])

concat([df, df]).T

我得到:

AttributeError: 'DataFrame' object has no attribute 'dtypes' !

如果我尝试:

concat([df, df]).T.to_dict()

我得到:

RuntimeError: maximum recursion depth exceeded in cmp

我认为这与索引中引入的重复项有关,concat()但没有找到解决方法。

4

1 回答 1

1

您可以使用以下方式指定层次索引keys

In [288]: concatenated = concat([df,df], keys=['first', 'second'])

In [289]: print concatenated.T
   first      second    
       0   1       0   1
a      1   1       1   1
b     10  20      10  20
c     41  42      41  42

In [290]: print concatenated.T.to_dict().values()
[{'a': 1, 'c': 41, 'b': 10}, {'a': 1, 'c': 41, 'b': 10}, {'a': 1, 'c': 42, 'b': 20}, {'a': 1, 'c': 42, 'b': 20}]
于 2012-10-09T10:58:45.397 回答