python-3.x - 移动唯一计数计算 Pandas DataFrame
问题描述
我正在定义一个函数,该函数应用于我的数据框中的每一行,该函数计算集合中每个 ID 的“代码”列中的唯一代码。我的代码可以工作,但是速度非常慢,而且我使用的是大型数据集。我正在寻找一种不同的方法来加快操作。
from datetime import timedelta as td
import pandas as pd
df['Trailing_12M'] = df['Date'] - td(365) #current date - 1 year as new column
def Unique_Count(row):
"""Creating a new df for each id and returning unique count to every row in original df"""
temp1 = np.array(df['ID'] == row['ID'])
temp2 = np.array(df['Date'] <= row['Date'])
temp3 = np.array(df['Date'] >= row['Trailing_12M'])
temp4 = np.array(temp1 & temp2 & temp3)
df_Unique_Code_Count = np.array(df[temp4].Code.nunique())
return df_Unique_Code_Count
df['Unique_Code_Count'] = df.apply(Unique_Count, axis=1)
解决方案
推荐阅读
- sql - 从其他表列检索记录
- javascript - 空白屏幕 - Matter.js
- druid - Druid Concat String 和 Measure 聚合
- javascript - MongoDB如何按索引替换数组项
- c - 使用 ARM Neon 内在函数实现 64 位变量的乘法时面临的问题
- rest-assured - 使用 RestArrured 触发时 API 返回 text/html 而不是 JSON
- python - 在python中循环两个文本文件
- midi - csound中的midipolyaftertouch是否损坏?
- django - 如何从重复查询中优化查询集
- c# - “没有足够的权限来完成操作”,尽管授予了所有必要的权限