python - 如何用 pandas 列制作出现矩阵

标签 python pandas

我有一个四列矩阵。我想保留前两列并将后两列转换为一种出现矩阵(但具有相应的值)。我尝试对 ['shop_id', 'item_id', 'date'] 进行分组,但不知道如何为那些空日期填充 0。有人有主意吗?非常感谢

given:
shop_id item_id date sales
0       19      0    1
0       19      2    13
0       19      3    11
1       19      1    3

result:
shop_id item_id date_0 date_1 date_2 date_3 
0       19      1      0      13     11
1       19      0      3      0      0

最佳答案

让我们使用set_indexunstackfillna:

df.set_index(['shop_id','item_id','date'])['sales'].unstack()\
  .add_prefix('date_').reset_index().fillna(0).astype(int)

输出:

date  shop_id  item_id  date_0  date_1  date_2  date_3
0           0       19       1       0      13      11
1           1       19       0       3       0       0

关于python - 如何用 pandas 列制作出现矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47825709/

相关文章:

python - 当存在特定匹配时,将数据框的一列添加到另一个数据框

python - 从节点列表中提取边和社区

python - 在python中将列表转换为字符串

javascript - 如何使用 BeautifulSoup 和 Python 调用 JavaScript 函数

python - 为什么gtk.Dialog在没有获得焦点时直接消失

python - 在Python中使用相同的整数对不同列中的相同值进行编码

python - 如何在Python中使用.loc创建一个不大于的条件

python - 循环数据帧列以检查字典键

python - 列表总和,不改变列表pandas的长度

python - Pandas:从 DataFrame 中的列表中获取值