【发布时间】:2018-01-23 02:26:04
【问题描述】:
我的问题类似于stackoverflow.com/q/7549410
我的配对数据如下所示:
ID ATTR
3 10
1 20
1 20
4 30
我想计算唯一对并将这些频率计数存储在这样的矩阵中:
10 20 30
1 | 0 2 0
3 | 1 0 0
4 | 0 0 1
或者,如果已知 ID 在 {1, 2, 3, 4} 中取值,而 ATTR 在 {0, 10, 20, 30} 中取值,那么我想要这样的矩阵:
0 10 20 30
1 | 0 0 2 0
2 | 0 0 0 0
3 | 0 1 0 0
4 | 0 0 0 1
问题:在 Python 或 NumPy 中实现这两种方法的最快方法是什么?
我尝试过使用 Pandas,但我得到一个空的 DataFrame:
import numpy as np
import pandas as pd
x = pd.DataFrame([[3, 10], [1, 20], [1, 20], [4, 30]])
x.pivot_table(index = 0, columns = 1, fill_value = 0, aggfunc = 'sum')
【问题讨论】:
-
这是熊猫吗?
-
x.pivot_table(index=0, columns=1, values=1, aggfunc='size', fill_value=0) -
@cᴏʟᴅsᴘᴇᴇᴅ 请查看我更新的问题。这不是一个重复的问题,因为我正在寻找两种矩阵。