2015-11-13 124 views
5

没有违法,如果问题太简单。如果您需要更多信息,请与我们联系。如何将元组的元组转换为Python中的pandas.DataFrame?

我找一个想法转换的元组方形式的元组在清洁/高效/ Python的方式来pandas.DataFrame, 即从

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

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 

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

DataFrame(t)似乎失败。

回答

8
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 
4

传递元组的列表代替的元组的元组:

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 

pd.DataFrame(data)如下不同的代码路径时data是相对于列表的元组。

熊猫开发商Jeff Reback explains

列表的元组是指定的类型,-的元组元组是不允许的,因为我觉得它可以表示嵌套类型,将需要更多的分析。

+0

我有这样的:'pd.DataFrame(json.loads(json.dumps(S)))'但你更干净 – skulz00