如何转置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()在索引中引入的重复项有关,但没有找到解决方法。
答案 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}]