簡體   English   中英

對 pandas groupby 中的列進行操作

[英]Operate on columns in pandas groupby

假設我有一個 dataframe df ,它有 4 列col = ["id","date","basket","gender"]和一個 function

def is_valid_date(df):
         idx = some_scalar_function(df["basket") #returns an index
         date = df["date"].values[idx]
         return (date>some_date)

在拆分“split-apply-combine”時,我一直將groupby理解為“創建一個新的數據幀”(很遺憾地說),因此如果我想將is_valid_date應用於每組id ,我會假設我可以做到

df.groupby("id").agg(get_first_date)

但它在idx=some_scalar_function(df["basket"])中拋出KeyError: 'basket'

如果使用GroupBy.agg它分別處理每一列,所以不能選擇像df["basket"], df["date"]

解決方案是將GroupBy.apply與您的自定義 function 一起使用:

df.groupby("id").apply(get_first_date)

暫無
暫無

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

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