簡體   English   中英

基於兩列值有效地從熊貓數據框中提取信息

[英]Efficiently extracting information from a pandas dataframe based on two column values

我正在嘗試從由 productId 和 customerId 索引的數據框中提取信息。 我有大量(數百萬)(productId,customerId)對,並且有興趣找到最有效的方法來做到這一點。

我有兩個數據幀,df1 包含我感興趣的 customerId、productId 對,第二個幀 df2 包含感興趣的信息,由 customerId、productId 對索引。

到目前為止,我已經嘗試過類似的事情:

def f(x, y):
    return(df2.col[(df2.customerId == x) & (df2.productId == y)].sum())

values = df1.apply(lambda x: f(x.customerId, x.productId), axis = 1)

工作正常,但速度很慢。

有什么改進建議嗎?

您可以嘗試列表理解:

values = [df2.loc[df2[['customerId', 'productId']].eq(i).all(), 'col'].sum() for i in df1.values]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM