python - 编写函数以应用于 Pandas GroupBy
问题描述
从这篇文章开始:从熊猫 groupby 对象返回每个组的子集 我正在尝试编写一个函数以应用于熊猫中的 groupby 对象
def group_by_function(df):
ID = df.loc[df.Parameter_1==0].Parameter_2.idxmin()
df_2 = df.iloc[ID].Parameter
print(ID)
return df_2
df.groupby(by=['Column1', 'Column2']).apply(group_by_function)
在这种情况下,我对索引的工作方式有点迷茫。在示例中,我返回的 ID 是 1189 - 但是我执行的行 df.iloc[1189] 返回位置指示器超出范围的错误。
我的理解是在 groupby 期间应该保留索引,这是我的 ID= 行告诉我的。但是我不清楚为什么 iloc 调用会引发错误。
我的 groupby 由两列组成 - 不确定这是否是一个因素。
本
解决方案
您可以使用loc
按标签选择,因为idxmin
返回索引,而不是位置:
df_2 = df.loc[ID, 'Parameter']
推荐阅读
- sql - SQL按字母顺序对具有多对多关系的记录进行排序
- java - 将列表从 recyclerview 适配器传递到 viewpager 适配器时出错(空对象引用上的“int java.util.List.size()”)
- r - 在达到某个值后如何避免循环内的 if 语句
- c++ - 为什么不允许将大括号列表静态转换为数组?
- jmeter - 如何将请求正文存储到jmeter中的变量中?
- python - 使用 PyCharm 在 map/filter/reduce 中进行 Python 类型推断和自动完成
- vue.js - 带有微软错误的firebaseui身份验证:provider_id undefined
- asp.net-core-mvc - 发布asp.net核心项目时的Fastreport字体问题
- .net - 通过编译为ast然后反编译来重组.net代码
- python - 使用 Boto 自动上传到 AWS S3 存储桶 Yields Expired Token Error