熊猫转移concat()

时间:2012-10-09 09:53:11

标签: python pandas

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

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()在索引中引入的重复项有关,但没有找到解决方法。

1 个答案:

答案 0 :(得分: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}]