如何解决如何根据模式删除列中每个条目的最后一部分?
我用熊猫数据框编译了一组油井。看起来像这样:
wells = pd.DataFrame({'date':['2019-01-01','2019-01-01','2019-01-01'],'well': ['FIELDX-1D','FIELDX-2D','FIELDY-1C','FIELDY-1B','FIELDZ-1A','FIELDZ-1J'],'oil_mmbd':[3.1,5.6,9.8,2.5,4.7,6.1]})
date well oil_mmbd
0 2019-01-01 FIELDX-1D 3.1
1 2019-01-01 FIELDX-2D 5.6
2 2019-01-01 FIELDY-1C 9.8
3 2019-01-01 FIELDY-1B 2.5
4 2019-01-01 FIELDZ-1A 4.7
5 2019-01-01 FIELDZ-1J 6.1
我要实现的目标是创建一个新变量(即“字段”),以编译每个字段的汇总输出。为此,我需要删除每口井名称的最后一部分。但我似乎无法使用Python和Pandas找到解决方案。
我想进入一个像这样的表:
wells_agg = pd.DataFrame({'date':['2019-01-01','field': ['FIELDX','FIELDY','FIELDZ'],'oil_mmbd':[8.7,12.3,10.8]})
date field oil_mmbd
0 2019-01-01 FIELDX 8.7
1 2019-01-01 FIELDY 12.3
2 2019-01-01 FIELDZ 10.8
解决方法
您可以使用wells.well.str.split('-').str[0])
去除阱列的后缀。因此,请使用wells.groupby('well')
而不是wells.groupby(wells.well.str.split('-').str[0]))
。请注意以下解决方案。
wells.groupby(['date',wells.well.str.split('-')\
.str[0]]).oil_mmbd.sum().reset_index()
date well oil_mmbd
0 2019-01-01 FIELDX 8.7
1 2019-01-01 FIELDY 12.3
2 2019-01-01 FIELDZ 10.8
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。