2016-10-10 129 views
0

我希望得到一個數據框使用下列元組的列表回:轉換數據幀到元組,然後返回到數據幀在Python熊貓

tuples = tuple(df.itertuples(index=False)) 
#do some code, passing out df 
ls = [(tup._fields, pd.Series(tup).to_frame()) for tup in tuples] 

我做些什麼來獲取指定的元組是TUP。 _fields。

我想重新創建數據框,因爲它是,但我不能這樣做符合Python-LY。

我該如何將這個列表合併到一個完整的數據框中,並將tup._fields作爲列標題?

我曾嘗試:

ls = [pd.Series(tup).loc[0] for tup in tuples] 
df=pd.DataFrame({tup._fields: ls}) 

這是假設我只有一個行系列在可變tup,但是這不會更大的DFS工作。

+0

在文檔tup._fields實測值這一點,所以修正原來的問題。 –

回答

0

你爲什麼要提取tup._fields線?您可以使用NamedTuple的列表進行轉換。

考慮這個例子:

df = pd.DataFrame({'one' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']), 
     'two' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}) 

tuples = tuple(df.itertuples(index=False)) 

df2 = pd.DataFrame(list(tuples)) 

df2.head() 

#> one two 
#> 0 1.0 1.0 
#> 1 2.0 2.0 
#> 2 3.0 3.0 
#> 3 NaN 4.0