python - 如何将 DF 合并到单独的行中?
问题描述
我有以下格式的 DF:
Match | Bookmaker | Over/Under Type | Over 1,5 | Under 1,5 | Over 2 | Under 2
A vs B | Asianodds| 1,5 | 2,11 | 1,26 | n/a | n/a
A vs B | Pinnacle | 1,5 | 2,11 | 1,26 | n/a | n/a
A vs B | Asianodds| 2 | n/a | n/a | 3,2 | 1,32
A vs B | Pinnacle | 2 | n/a | n/a | 3,3 | 1,42
C vs D | Asianodds| 1,5 | 2,31 | 1,25 | n/a | n/a
C vs D | Pinnacle | 1,5 | 2,71 | 1,76 | n/a | n/a
C vs D | Asianodds| 2 | n/a |n/a | 3,4 | 1,34
C vs D | Pinnacle | 2 | n/a |n/a | 3,5 | 1,45
如何操纵 DF 以达到这种格式(每个比赛/博彩公司一行):
Match | Bookmaker | Over 1,5 | Under 1,5 | Over 2 | Under 2 |
A vs B | Asianodds| 2,11 | 1,26 | 3,2 | 1,32
A vs B | Pinnacle | 2,11 | 1,26 | 3,3 | 1,42
C vs D | Asianodds| 2,31 | 1,25 | 3,4 | 1,34
C vs D | Pinnacle | 2,71 | 1,76 | 3,5 | 1,45
解决方案
首先删除'Over/Under Type
列,然后GroupBy.first
用于每组的第一个非缺失值:
df = df.drop('Over/Under Type', 1).groupby(['Match','Bookmaker'], as_index=False).first()
print (df)
Match Bookmaker Over 1,5 Under 1,5 Over 2 Under 2
0 A vs B Asianodds 2,11 1,26 3,2 1,32
1 A vs B Pinnacle 2,11 1,26 3,3 1,42
2 C vs D Asianodds 2,31 1,25 3,4 1,34
3 C vs D Pinnacle 2,71 1,76 3,5 1,45
推荐阅读
- c++ - 创建具有结构元素类型的特征稀疏矩阵
- java - 为什么我不能只捕获 Java 中的已检查异常
- python - 创建新字典时从字典中排除键值对
- r - 按r中的特定日期顺序分组
- c# - 打字稿为什么我的 Get 请求以骆驼案的形式出现?
- bixby - Bixby Capsule 中 Javascript API 中的“类型”模块的目的是什么?
- kdb - Q/Kdb:组合两列以创建一个新列作为列表
- javascript - 如何在 Flow 中声明一个更改参数而没有 ESLint 错误的函数
- java - 将使用记录器的错误正确转换为常规字符串
- php - 405 方法不允许 - PUT (PHP)