假設我有一個資料集,其中包含一些人過去 5 個月的資料。我想創建一些與這 5 個月中的每一個相關的功能,例如:
我的初始資料框看起來像這樣:
| 人 | 日期 |
|---|---|
| 甲 | 25-01-2015 |
| 乙 | 29-01-2015 |
| 甲 | 13-02-2015 |
| 甲 | 14-05-2015 |
| 甲 | 19-05-2015 |
我希望我的資料框從下面看起來像這樣:因此,創建與月和年(按月和年分組)相關的 5 個(或更多列,可能對應于 2015 年所有 12 個月的 12 個),然后放入相應的功能根據月份和年份進行計數。
| 人 | 01-2015 | 02-2015 | 03-2015 | 04-2015 | 05-2015 |
|---|---|---|---|---|---|
| 甲 | 2 | 1 | 0 | 0 | 2 |
| 乙 | 1 | 0 | 0 | 0 | 0 |
你能建議我怎么做嗎?
uj5u.com熱心網友回復:
使用pivot:
out = df.groupby(['Person', pd.Grouper(freq='MS', key='date')], as_index=False) \
.size().pivot('Person', 'date', 'size')
out = out.reindex(columns=pd.date_range(out.columns.min(), out.columns.max(), freq='MS')) \
.fillna(0).astype(int).reset_index()
輸出:
>>> out
2015-01-01 2015-02-01 2015-03-01 2015-04-01 2015-05-01
Person
Person A 1 1 0 0 2
Person B 1 0 0 0 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/344870.html
上一篇:根據日期時間和其他列創建新功能
