假设我有一个这样的数据框:
lst1 = [[1,3,4,5],[1,2,3,3],[2,3,4,5],[3,4,5,5]]
lst2 = [[1,2,3,1],[1,4,1,2],[3,3,1,5],[2,4,1,5]]
lst3 = [[1,2,3,3],[3,2,1,2],[1,3,1,4],[2,4,3,5]]
percentile_list = pd.DataFrame({'lst1Tite' : lst1,
'lst2Tite' : lst2,
'lst3Tite':lst3
})
> precentile_list
lst1Tite lst2Tite lst3Tite
0 [1, 3, 4, 5] [1, 2, 3, 1] [1, 2, 3, 3]
1 [1, 2, 3, 3] [1, 4, 1, 2] [3, 2, 1, 2]
2 [2, 3, 4, 5] [3, 3, 1, 5] [1, 3, 1, 4]
3 [3, 4, 5, 5] [2, 4, 1, 5] [2, 4, 3, 5]
现在我想提取第0行,并将第0行转换为数据帧,如下所示:
> percentile_0
col1 col2 col3 col4
0 1 3 4 5
1 1 2 3 1
2 1 2 3 3
我该怎么做?
如果我想将precentile_list转换为像percentile_0这样的数据框怎么办?
答案 0 :(得分:1)
您可以使用apply
并在行上应用Series
ctor:
In [17]:
percentile_list.iloc[0].apply(pd.Series)
Out[17]:
0 1 2 3
lst1Tite 1 3 4 5
lst2Tite 1 2 3 1
lst3Tite 1 2 3 3
如果你特别迷恋所需的输出:
In [20]:
pd.DataFrame(percentile_list.iloc[0].apply(pd.Series).values, columns = ['col1','col2','col3','col4'])
Out[20]:
col1 col2 col3 col4
0 1 3 4 5
1 1 2 3 1
2 1 2 3 3
您可以将每个df存储在一个带有您想要的键的dict中:
In [41]:
d={}
for l in percentile_list.index:
d['percentile_' + str(l)] = pd.DataFrame(percentile_list.loc[l].apply(pd.Series).values, columns = ['col1','col2','col3','col4'])
d
Out[41]:
{'percentile_0': col1 col2 col3 col4
0 1 3 4 5
1 1 2 3 1
2 1 2 3 3, 'percentile_1': col1 col2 col3 col4
0 1 2 3 3
1 1 4 1 2
2 3 2 1 2, 'percentile_2': col1 col2 col3 col4
0 2 3 4 5
1 3 3 1 5
2 1 3 1 4, 'percentile_3': col1 col2 col3 col4
0 3 4 5 5
1 2 4 1 5
2 2 4 3 5}
这是第一个关键:
In [42]:
d['percentile_0']
Out[42]:
col1 col2 col3 col4
0 1 3 4 5
1 1 2 3 1
2 1 2 3 3