python - 如何在熊猫的任何列中获取包含特定字符串的所有行的平均值?
问题描述
假设我有一个熊猫数据框,其中包含假设调查的答案。有两个问题:“美国国旗上的哪种颜色是你最喜欢的(你可以选择不止一种)?” 和“你的月薪是多少?” 第一个问题有几个可能的答案:
1. red, white, blue
2. red, white
3. red, blue
4. red
5. white, blue
6. white
7. blue
我想获得在第一个问题的答案中分别包含红色、白色和蓝色的所有人的平均工资值。我想得到这样的东西:
FlagColor Salary
red 4345
white 3444
blue 2356
我到了一个点,我对所有选项都有平均值,我使用了这样的东西:
flagcolors_vs_salary_mean = flagcolors_vs_salary.dropna().groupby('FlagColor' , as_index=False)['Salary'].mean()
如何组合包含每种颜色的所有选项的方法?我需要用第一个问题的答案拆分列吗?请记住,为每个选项投票的人数因选项而异。
解决方案
尝试首先将标志颜色分解为自己的行,然后使用groupby
:
(df.assign(**{'FlagColor': df['FlagColor'].str.split(', ')})
.explode('FlagColor')
.groupby('FlagColor', as_index=False)['Salary']
.mean())
推荐阅读
- javascript - Excel 文件从服务器到客户端 | Javascript
- javascript - 删除每个函数中的重复项
- javascript - 在 React-Redux 中计算 SubTotal
- c++ - 交叉编译时的标准库问题
- java - 客户端没有从服务器获得任何类型的响应(称为 MHP 的 Cusome 协议)
- reactjs - 反应路由器位置键未定义
- mysql - 如何在sql中比较同一表的第一条记录中的columnA和第二条记录中的columnB
- vue.js - 如何在 for loop ion vuejs 中以不同方式处理隐藏显示?
- c++ - 我如何将 UE4 链接到 SQL Server?
- android - Android Xposed Hook PackageManagerService 找不到类“com.android.server.pm.PackageManagerService”