Pandas包含数据帧

2024-06-10 18:35:09 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有这样一个数据帧:

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行转换为数据帧,如下所示:

^{pr2}$

我怎么能做到呢?在

如果我想把precentile_list转换成像percentile_0这样的数据帧呢?在


Tags: 数据dataframelistpdpercentilepr2lst1lst2
1条回答
网友
1楼 · 发布于 2024-06-10 18:35:09

您可以使用apply并在行上应用Seriesctor:

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

如果您特别喜欢所需的输出:

^{pr2}$

您可以将每个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

相关问题 更多 >