如何在Python中将元组的元组转换为pandas.DataFrame?

Ole*_*kov 19 python tuples data-structures python-3.x pandas

如果问题太基础,没有冒犯.如果您需要更多信息,请与我们联系.

我正在寻找一个想法,以干净/高效/ pythonic的方式将元组的方形元组转换为pandas.DataFrame,即从

s =((1,0,0,0,),(2,3,0,0,),(4,5,6,0,),(7,8,9,10,))
Run Code Online (Sandbox Code Playgroud)

pandas.DataFrame喜欢

   1  2  3   4
1  1  0  0   0
2  2  3  0   0
3  4  5  6   0
4  7  8  9  10
Run Code Online (Sandbox Code Playgroud)

当然,这个列表可以随着上三角形附加更多的零而增长(如果我们将s视为行的元组).

DataFrame(t) 似乎失败了.

fur*_*ras 33

import pandas as pd

s = ((1,0,0,0,),(2,3,0,0,),(4,5,6,0,),(7,8,9,10,))

print pd.DataFrame(list(s))

#    0  1  2   3
# 0  1  0  0   0
# 1  2  3  0   0
# 2  4  5  6   0
# 3  7  8  9  10

print pd.DataFrame(list(s), columns=[1,2,3,4], index=[1,2,3,4])  

#    1  2  3   4
# 1  1  0  0   0
# 2  2  3  0   0
# 3  4  5  6   0
# 4  7  8  9  10
Run Code Online (Sandbox Code Playgroud)


unu*_*tbu 6

传递元组列表而不是元组元组:

In [13]: pd.DataFrame(list(s))
Out[13]: 
   0  1  2   3
0  1  0  0   0
1  2  3  0   0
2  4  5  6   0
3  7  8  9  10
Run Code Online (Sandbox Code Playgroud)

pd.DataFrame(data)data一个元组而不是一个列表时,它遵循不同的代码路径.

熊猫开发人员Jeff Reback解释说:

list-of-tuples是指定的类型,不允许使用tuple-of-tuple,因为我认为它可以表示需要更多解析的嵌套类型.