2017-04-21 8 views
2

I try to follow this link pandas dataframe with 2-rows header and export to csv in order for me to created extra header without remove the original header, below is my coding:Fehler: Objekt vom Typ 'zip' hat keine len(), nachdem sie durch zusätzliche Header hinzugefügt Reißverschluss mit

df.columns = pd.MultiIndex.from_tuples((zip(df.columns,[uniquevaluesfirstcolumnww, '', uniquevaluesfirstcolumnww1, ' ',uniquevaluesfirstcolumnww2, ' ']))) 

I get the error such as this: object of type 'zip' has no len()

Anyone have any idea? even though I try to add list before zip but fail also.

Antwort

1

Ich denke Problem zip Rückkehr object in python 3 ist, so konvertieren müssen list:

df.columns = pd.MultiIndex.from_tuples((list(zip(df.columns,[uniquevaluesfirstcolumnww, '', uniquevaluesfirstcolumnww1, ' ',uniquevaluesfirstcolumnww2, ' '])))) 

Aber scheint, die Sie benötigen MultiIndex.from_arrays:

cols = list('abcdef') 
df = pd.DataFrame([[1,1,1,1,1,1]], columns=cols) 
print (df) 
    a b c d e f 
0 1 1 1 1 1 1 

uniquevaluesfirstcolumnww = 'r' 
uniquevaluesfirstcolumnww1 = 's' 
uniquevaluesfirstcolumnww2 = 't' 
vals = [uniquevaluesfirstcolumnww, '', 
     uniquevaluesfirstcolumnww1, ' ', 
     uniquevaluesfirstcolumnww2, ' '] 
df.columns = pd.MultiIndex.from_arrays([df.columns, vals]) 
print (df) 
    a b c d e f 
    r  s  t 
0 1 1 1 1 1 1 

Wenn col UMNS haben MultiIndex auch:

cols = pd.MultiIndex.from_product([['a','b','c'], ['x','y']]) 
df = pd.DataFrame([[1,1,1,1,1,1]], columns=cols) 
print (df) 
    a  b  c 
    x y x y x y 
0 1 1 1 1 1 1 

uniquevaluesfirstcolumnww = 'r' 
uniquevaluesfirstcolumnww1 = 's' 
uniquevaluesfirstcolumnww2 = 't' 
vals = [uniquevaluesfirstcolumnww, '', 
     uniquevaluesfirstcolumnww1, ' ', 
     uniquevaluesfirstcolumnww2, ' '] 
df.columns = pd.MultiIndex.from_arrays([df.columns.get_level_values(0), 
             df.columns.get_level_values(1), 
             vals]) 
print (df) 
    a  b  c 
    x y x y x y 
    r  s  t 
0 1 1 1 1 1 1 
+0

ich diesen Fehler ** unhashable Typ: 'numpy.ndarray' **, nachdem ich Liste hinzufügen –

+0

und anderen Lösungen? Was gibt 'print (vals)' zurück? – jezrael

+0

und was gibt 'print (df.columns)' zurück? – jezrael

Verwandte Themen