我有一個熊貓資料框
| 用戶身份 | 音樂ID | has_rating |
|---|---|---|
| 一個 | 一個 | 1 |
| 乙 | b | 1 |
我想為那些沒有評分的用戶自動為每個 user_id 和 music_id 添加新行,比如
| 用戶身份 | 音樂ID | has_rating |
|---|---|---|
| 一個 | 一個 | 1 |
| 一個 | b | 0 |
| 乙 | 一個 | 0 |
| 乙 | b | 1 |
對于我的 Pandas 資料框中尚不存在的每個 user_id 和 music_id 組合對。
有沒有辦法像這樣自動附加這些行?
uj5u.com熱心網友回復:
您可以使用pivot_table和使用臨時重塑fill_value=0來填充缺失值0:
(df.pivot_table(index='user_id', columns='music_id',
values='has_rating', fill_value=0)
.stack().reset_index(name='has_rating')
)
輸出:
user_id music_id has_rating
0 A a 1
1 A b 0
2 B a 0
3 B b 1
uj5u.com熱心網友回復:
嘗試使用pd.MultiIndex.from_product()
l = ['user_id','music_id']
(df.set_index(l)
.reindex(pd.MultiIndex.from_product([df[l[0]].unique(),df[l[1]].unique()],names = l),fill_value=0)
.reset_index())
輸出:
user_id music_id has_rating
0 A a 1
1 A b 0
2 B a 0
3 B b 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/527128.html
