2016-10-10 128 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