python - Pandas groupby 仅在选定的行和列上
问题描述
对于以下数据框,我需要为 each 选择行2017-03
,2017-05
然后type
为和type
计算平均值:v2
v3
type date v1 v2 v3
0 a 2017-01 8 16 32
1 a 2017-02 3 6 12
2 a 2017-03 6 12 24
3 a 2017-04 6 12 24
4 a 2017-05 5 10 20
5 b 2017-01 4 8 16
6 b 2017-02 3 6 12
7 b 2017-03 5 10 20
8 b 2017-04 9 18 36
9 b 2017-05 4 8 16
切片的数据框将如下所示:
type date v2 v3
0 a 2017-03 12 24
1 a 2017-04 12 24
2 a 2017-05 10 20
3 b 2017-03 10 20
4 b 2017-04 18 36
5 b 2017-05 8 16
我的预期将如下所示:
type v2 v3
0 a 11.33 22.67
1 b 12.00 24.00
我怎样才能做到这一点?谢谢你。
解决方案
你用文字描述了一些看起来像这样的东西:
(df.loc[df['date'].between('2017-03', '2017-05')]
.drop(['v1'], 1)
.groupby('type', as_index=False)
.mean())
type v2 v3
0 a 11.333333 22.666667
1 b 12.000000 24.000000
PS:“日期”不需要像日期时间列一样处理,因为可以按字典顺序比较“YYYY-MM”日期。
推荐阅读
- .net-core - 从 Azure ServiceBus 中的订阅/主题读取现有消息
- laravel-5 - Laravel 5.7 在本地主机上给出错误 500
- javascript - 'lightercollective' 不是内部或外部命令、可运行程序或批处理文件
- java - 如何在 JavaFX 应用程序中将文本设置为键盘按键上的标签?
- spring-boot - 如何使用二进制文件修复springboot gradle:processResources
- android - 无法在 Google Play 管理中心更新应用内产品
- python - py2exe 在导入熊猫时始终失败
- javascript - 更改附加元素的属性
- c++ - 地图(long long int,long long int)不适用于 key=1000 000 000(在 long long int 范围内)
- c# - 如何验证测试中没有与依赖项的交互