在列和索引值合并的单行数据帧中转换Python数据帧

2024-03-28 14:08:23 发布

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

我有下面的结构,但要大得多

    1y   2y   3y
1w  2    8    40
2w  3    10   50 
1m  4    12   60

在python中,将其转换为单行数据帧的好方法是什么:

         1w/1y  1w/2y  1w/3y  2w/1y  2w/2y  2w/3y  1m/1y  1m/2y  1m/3y
NewIndex  2       8     40     3       10    50     4       12    60

新的索引最终将是dates,因为我在一个单独的csv中为每个日期存储了以下数据,并且我想将其转换为一个单独的dataframe来对其运行一些统计信息

非常感谢
Here's the image as the text got misaligned.https://i.stack.imgur.com/K3s7V.png


Tags: csvthe数据方法textimage信息dataframe
1条回答
网友
1楼 · 发布于 2024-03-28 14:08:23
In [16]: x = df.stack()

In [17]: x
Out[17]:
1w  1y     2
    2y     8
    3y    40
2w  1y     3
    2y    10
    3y    50
1m  1y     4
    2y    12
    3y    60
dtype: int64

In [18]: new = pd.DataFrame(x.values, index=x.index.map('/'.join)).T

In [19]: new
Out[19]:
   1w/1y  1w/2y  1w/3y  2w/1y  2w/2y  2w/3y  1m/1y  1m/2y  1m/3y
0      2      8     40      3     10     50      4     12     60

或者不用换位更好:

In [30]: new = pd.DataFrame(x.values[None, :], columns=x.index.map('/'.join), index=[0])

In [31]: new
Out[31]:
   1w/1y  1w/2y  1w/3y  2w/1y  2w/2y  2w/3y  1m/1y  1m/2y  1m/3y
0      2      8     40      3     10     50      4     12     60

相关问题 更多 >