dataframe将其中两列分别处理成行索引和列索引

如题所述,我们的目标是将含有三列的dataframe中的两列分别处理成行索引和列索引,第三列则是(行索引,列索引)对应位置的值。

dataframe设为df1,其中三列分别为date,id,cnt

 

dateidcnt
2020-03-03 00:00:000000017
2020-03-03 01:00:000000024
2020-03-03 02:00:000000039
2020-03-03 03:00:0000000413
2020-03-03 00:00:000000028
2020-03-03 01:00:000000035
2020-03-03 02:00:0000000410
2020-03-03 03:00:0000000114
2020-03-03 00:00:000000039
2020-03-03 01:00:000000046
2020-03-03 02:00:0000000111
2020-03-03 03:00:0000000215
2020-03-03 00:00:0000000410
2020-03-03 01:00:000000017
2020-03-03 02:00:0000000212
2020-03-03 03:00:0000000316

目标是变成:

 0000010000020000300004
2020-03-03 00:00:0078910
2020-03-03 01:00:007456
2020-03-03 02:00:001112910
2020-03-03 03:00:0014151613

 

col=['date']
col.extend(df1.id.unique().tolist())
result=pd.DataFrame(columns=col)
result['date']=df1.date.unique().tolist()
for i in df1.id.unique().tolist():
    tmp = df1.loc[df1['id']==i]
    _list=[]
    for j in df1.date.unique().tolist():
        a=tmp.loc[tmp['date']==j]['cnt'].to_list()
        if len(a)==0:
            a.append('NA')
        _list.extend(a)
    result[i]=_list

 

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值