首页 > 解决方案 > 数据帧转置和索引

问题描述

我有一个像这样的 Pandas 数据框(df)。

Color  20-05-2020  21-05-2020  22-05-2020  23-05-2020
Yellow   10           20          30          40
Red      15           25          35          45
Blue     23           34          45          56

当我使用 转置时df.T,我得到了这样的结果。

Color        Yellow  Red  Blue
20-05-2020     10    15    23
21-05-2020     20    25    34
22-05-2020     30    35    45
23-05-2020     40    45    56

当我检查df.index时,我发现,

Index(['Color', '20-05-2020', '21-05-2020', '22-05-2020', '23-05-2020'], dtype='object', length=...)

如何从索引中删除“颜色”?我还想将索引命名为“日期”。我怎么做?

谢谢。

标签: pythonpython-3.xpandasdataframeindexing

解决方案


使用df.index.name

>>> df
        20-05-2020  21-05-2020  22-05-2020  23-05-2020
Color                                                 
Yellow          10          20          30          40
Red             15          25          35          45
Blue            23          34          45          56

>>> df = df.T
>>> df.columns.name = ''
>>> df.index.name = 'Date'
>>> df
             Yellow  Red  Blue
Date         
20-05-2020     10    15    23
21-05-2020     20    25    34
22-05-2020     30    35    45
23-05-2020     40    45    56

或者,

>>> df = pd.DataFrame(df.values.T, 
                      index=df.columns.rename('Date'),
                      columns=df.index.rename(''))
>>> df
             Yellow  Red  Blue
Date         
20-05-2020     10    15    23
21-05-2020     20    25    34
22-05-2020     30    35    45
23-05-2020     40    45    56

或者您可以使用df.reindex

>>> df.reindex(df.index.rename('')).T.reindex(df.columns.rename('Date'))
            Yellow  Red  Blue
Date                         
20-05-2020      10   15    23
21-05-2020      20   25    34
22-05-2020      30   35    45
23-05-2020      40   45    56

根据您的喜好,您可以设置df.columns.name='Date'df.index.name='Date'


推荐阅读