Aucune infraction, si les questions sont trop basiques. Faites-moi savoir si vous avez besoin de plus d'informations.
Je cherche une idée pour convertir un Tuple carré de tuples en pandas.DataFrame d'une manière propre/efficace/Pythonique, c'est-à-dire de
s =((1,0,0,0,),(2,3,0,0,),(4,5,6,0,),(7,8,9,10,))
à pandas.DataFrame
comme
1 2 3 4
1 1 0 0 0
2 2 3 0 0
3 4 5 6 0
4 7 8 9 10
Naturellement, cette liste peut s'allonger avec plus de zéros ajoutés dans le triangle supérieur (si nous considérons s comme un tuple de lignes).
DataFrame(t)
semble échouer.
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
Passez une liste de tuples au lieu d'un Tuple de tuples:
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)
suit des chemins de code différents lorsque data
est un tuple par opposition à une liste.
Développeur Pandas Jeff Reback explique :
list-of-tuples est le type spécifié, Tuple-of-Tuple n'est pas autorisé car je pense qu'il peut signifier des types imbriqués qui nécessiteraient plus d'analyse.