我有一个大矩阵(约 2 亿行)描述了每天发生的动作列表(有约 10000 个可能的动作)。我的最终目标是创建一个共现矩阵,显示在同一天发生的操作。
这是一个示例数据集:
data = {'date': ['01', '01', '01', '02','02','03'],
'action': [100, 101, 989855552, 100, 989855552, 777]}
df = pd.DataFrame(data, columns = ['date','action'])
Run Code Online (Sandbox Code Playgroud)
我尝试使用 pd.get_dummies 创建一个稀疏矩阵,但是解开矩阵并在其上使用 groupby 非常慢,仅 5000 行就需要 6 分钟。
# Create a sparse matrix of dummies
dum = pd.get_dummies(df['action'], sparse = True)
df = df.drop(['action'], axis = 1)
df = pd.concat([df, dum], axis = 1)
# Use groupby to get a single row for each date, showing whether each action occurred.
# The groupby …Run Code Online (Sandbox Code Playgroud)