我有一个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)存储为索引是个好主意吗?
答案 0 :(得分:1)
从克里斯离开的评论中:
df.drop_duplicates().pivot('Date','DestUserName', 'Percent') or
df.drop_duplicates().set_index(['Date', 'DestUserName']).unstack(1)