gpt4 book ai didi

python - Python数据框中列子集的groupby和均值

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:51 26 4
gpt4 key购买 nike

如果我有这两列:

dat=[['yes','dog', 20,4,60,400],['yes','dog', 20,4,60,300],['yes','cat', 20,10,10,float('nan')]]
df_dat= pd.DataFrame(dat,columns = ["Time","animal", "val", "val2", "val3", "val4"])

我想获得一个使用“时间”和“动物”分组的数据框。然后它采用其他列的组合方式。一个子集是 ["val","val3"] 和 ["val2","val4"]。

基本上,对值列子集采用 df_dat.groupby(["Time","animal"]).mean() 结果的手段

我正在寻找的输出看起来像(但采用数据帧格式):

[Index , 'val'/'val3','val2/val4'] 
[('yes','dog'),40,177]
[('yes','cat'),15,10]

最佳答案

设置

df = df_dat.groupby(['Time', 'animal']).mean()
subsets = [["val","val3"], ["val2","val4"]]

使用字典理解和赋值:

df.assign(**{'/'.join(cols): df[cols].mean(1) for cols in subsets})

             val  val2  val3   val4  val/val3  val2/val4
Time animal
yes cat 20 10 10 NaN 15.0 10.0
dog 20 4 60 350.0 40.0 177.0

如果您只想要子集列:

pd.DataFrame({'/'.join(cols): df[cols].mean(1) for cols in subsets})

             val/val3  val2/val4
Time animal
yes cat 15.0 10.0
dog 40.0 177.0

关于python - Python数据框中列子集的groupby和均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52241196/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com