我有這種格式的資料,我想把它轉成水平形狀,同時在日期和小時資料相同的情況下累積一個產品的計數。
我把新的所需資料框放在下面。使用熊貓這可行嗎?或者任何其他python庫?
id, date, hour, name, count
1, 01-20, 6, car, 4
2, 01-20, 6, car, 3
3, 01-20, 7, car, 4
4, 01-20, 7, car, 2
5, 01-21, 6, car, 1
6, 01-21, 6, car, 1
7, 01-21, 7, boat, 7
8, 01-21, 7, boat, 8
9, 01-22, 6, car, 10
10, 01-22, 7, boat, 11
01-20(6) 01-20(7) 01-21(6) 01-21(7) 01-22(6) 01-22(7)
car 4 3=7 4 2=6 1 1=2 0 10 0
boat 0 0 0 7 8=15 0 11
uj5u.com熱心網友回復:
你可以groupby sum,然后unstack,最后修改列名:
df2 = (df.groupby(['date', 'hour', 'name'])
['count'].sum()
.unstack(['date', 'hour'], fill_value=0)
)
df2.columns = df2.columns.map(lambda x: f'{x[0]}({x[1]})')
輸出:
01-20(6) 01-20(7) 01-21(6) 01-21(7) 01-22(6) 01-22(7)
name
boat 0 0 0 15 0 11
car 7 6 2 0 10 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/399306.html
上一篇:將帶有日期值的字典轉換為帶有日期值作為每月計數的資料框
下一篇:用向量替換矩陣列的磁區
