我是Python新手,我正在尝试做一些关于足底分数数据框架的计算。有没有办法转换足球比分(比如3-2,2-0.)从对象dtype到数字,这样我就可以对它们执行一些数字操作了吗?
提前谢谢你。
发布于 2021-04-23 08:09:57
将来,提供一个包含预期输入和输出的示例数据集。
您可以在'-'字符上拆分列。将列转换为int,然后执行groupby,将点数总和相加。
Given:
print(df)
Team Result Score
0 A W 3-0
1 A W 3-2
2 A L 2-4
3 A L 1-2
4 B W 1-0
5 B L 0-1
6 B T 1-1
7 B L 2-3代码:
import pandas as pd
df = pd.DataFrame([['A','W','3-0'],
['A','W','3-2'],
['A','L','2-4'],
['A','L','1-2'],
['B','W','1-0'],
['B','L','0-1'],
['B','T','1-1'],
['B','L','2-3']], columns=['Team','Result','Score'])
df[['Team Points','Opp Points']] = df['Score'].str.split('-',expand=True)
df[['Team Points','Opp Points']] = df[['Team Points','Opp Points']].astype(int)
df_sum = df.groupby(['Team'])['Team Points'].sum()输出:
print(df)
Team Result Score Team Points Opp Points
0 A W 3-0 3 0
1 A W 3-2 3 2
2 A L 2-4 2 4
3 A L 1-2 1 2
4 B W 1-0 1 0
5 B L 0-1 0 1
6 B T 1-1 1 1
7 B L 2-3 2 3求和:
print(df_sum)
Team
A 9
B 4
Name: Team Points, dtype: int32https://stackoverflow.com/questions/67211562
复制相似问题