我有以下建议:

| Fecha      | Partido                 | Equipo  |  xG  |  xGA |
|------------|-------------------------|---------|------|------|
| 2022-05-01 | América - Cruz Azul 0:0 | América | 1.53 | 0.45 |
| 2022-05-01 | Leon - América 2:0      | América | 1.70 | 0.35 |

我想在Partido列的基础上创建三个新列,其中第一组转到名为Home的新列,第二组转到名为Visitor的列,分数转到名为score的列.

期望输出:

| Fecha      | Partido                 | Equipo  |  xG  |  xGA | Home    | Away       | Score |
|------------|-------------------------|---------|------|------|-------- |------------|-------|
| 2022-05-01 | América - Cruz Azul 0:0 | América | 1.53 | 0.45 | América | Cruz Azul  | 0:0   |
| 2022-05-01 | Leon - América 2:0      | América | 1.70 | 0.35 | Leon    | América    | 2:0   |

我try 过用分隔符拆分,但由于一些团队的名字中有两个单词,所以无法使用.

推荐答案

使用str.extract和正则表达式非常简单:

regex = r'([^-]+)\s*-\s*([^-]+) (\d+:\d+)'
df[['Home', 'Away', 'Score']] = df['Partido'].str.extract(regex)

输出:

        Fecha                  Partido   Equipo    xG   xGA      Home       Away Score
0  2022-05-01  América - Cruz Azul 0:0  América  1.53  0.45  América   Cruz Azul   0:0
1  2022-05-01       Leon - América 2:0  América  1.70  0.35     Leon     América   2:0

regex demo

如果不想修改原始数据帧,还可以使用命名捕获组直接设置列名:

regex = r'(?P<Home>[^-]+)\s*-\s*(?P<Away>[^-]+) (?P<Score>\d+:\d+)'
df2 = df['Partido'].str.extract(regex)

#        Home       Away Score
# 0  América   Cruz Azul   0:0
# 1     Leon     América   2:0

# OR
df2 = df.join(df['Partido'].str.extract(regex))

# same a first output

Python相关问答推荐

Python Mercury离线安装

使用polars. pivot()旋转一个框架(类似于R中的pivot_longer)

删除特定列后的所有列

如何提高Pandas DataFrame中随机列 Select 和分配的效率?

在pandas中,如何在由两列加上一个值列组成的枢轴期间或之后可靠地设置多级列的索引顺序,

查找数据帧的给定列中是否存在特定值

如何在表单中添加管理员风格的输入(PDF)

有没有一种方法可以根据不同索引集的数组从2D数组的对称子矩阵高效地构造3D数组?

Pandas ,快速从词典栏中提取信息到新栏

如何批量训练样本大小为奇数的神经网络?

设计添加和搜索词的数据 struct :Leetcode211

如何在包含时间戳的词典列表中找到每天的第一个时间?

apply to pandas列不会给出正确的结果.

为什么要导入一个Python类来实例化它?

在Polars中查找给定列的范围内的最大值?

我想把字转换成8位二进制,但某些字符是7位的

一种处理Django查询集数据的轻量级方法

获取文本文件并创建CSV文件

将Python代码转换为C语言的挑战:实现用于校验和计算的Luhn算法

将DF转换为特定的对象 struct