熊猫如何将日期设置为索引,这是一个好主意吗?

时间:2019-02-01 21:21:42

标签: python python-3.x pandas

我有一个3列的pandas数据框:

df
    Date        DestUserName    Percent
0   2019-01-01  100             1.000000
1   2019-01-01  101             1.000000
2   2019-01-01  102             1.000000
3   2019-01-01  103             1.000000
4   2019-01-02  100             1.000000
5   2019-01-02  101             0.923077
6   2019-01-02  103             0.800000
7   2019-01-02  100             1.000000
8   2019-01-03  103             0.800000
9   2019-01-03  102             1.000000
10  2019-01-03  101             1.000000
11  2019-01-04  100             1.000000
11  2019-01-04  102             1.000000
11  2019-01-04  103             0.972222


df.dtypes
Date            object 
DestUserName    object 
Percent         float64
dtype: object

我想翻转数据,以便date(string)是第一列或索引,username / userid(string)是列名,percent(float64)是单元格中的数据类似于以下内容:

             100       101       102       103
2019-01-01   1.000000  1.000000  1.000000  1.000000
2019-01-02   1.000000  0.923077  NaN       0.800000
2019-01-03   NaN       1.000000  1.000000  0.800000
2019-01-04   1.000000  NaN       1.000000  0.972222

完成此操作的最佳方法是什么?我以前见过,但是将Date(string)存储为索引是个好主意吗?

1 个答案:

答案 0 :(得分:1)

从克里斯离开的评论中:

df.drop_duplicates().pivot('Date','DestUserName', 'Percent') or 
df.drop_duplicates().set_index(['Date', 'DestUserName']).unstack(1)