web-dev-qa-db-ja.com

タプルのタプルをPythonでpandas.DataFrameに変換する方法は?

質問が基本的すぎる場合は、違反はありません。さらに情報が必要な場合はお知らせください。

私はタプルの正方形のタプルをpandas.DataFrameにクリーン/効率的/ Pythonの方法で変換するアイデアを探しています、つまり

_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)は失敗したようです。

17
Oleg Melnikov
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
31
furas

タプルのタプルの代わりに、タプルのlistを渡します。

_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
_

dataがリストではなくタプルの場合、pd.DataFrame(data)は異なるコードパスに従います。

パンダ開発者 Jeff Rebackの説明

list-of-tuplesは指定されたタイプです。Tuple-of-Tupleは、より多くの解析が必要になるネストされたタイプを示すことができるため、許可されていません。

6
unutbu