我正在使用panda,试图通过将列(团队(拆分为Home和Away来向列发送文本,但我收到了以下错误:
"ValueError: Columns must be same length as key"
我可以拆分Score列,因为它只有一个分隔符"-",这很容易。不知道如何拆分Teams列,因为我试图将空格"与"v"字符一起使用。任何帮助都将不胜感激。谢谢
这是我正在使用的示例数据。
df = pd.read_excel('esports.xlsx')
#df.head()
#df[['score','oscore']] = df.Score.str.split("-",expand=True)
df[['team','opp']] = df.Teams.str.split((" "+"v"),expand=True)
df.head()
尝试
df[['team','opp']] = df.Teams.str.split(" v ",expand=True)
应该使用模式"v"或"\s+v\s+"进行拆分。示例:
import pandas as pd
import numpy as np
data = np.array([
["TeamA v Teamb"],
["TeamA v Teamb"],
["TeamA v Teamb"],
])
df = pd.DataFrame(data, columns = ["Teams"])
df[["TeamA", "TeamB"]] = df.Teams.str.split("s+vs+", expand = True)
print(df)
输出:
Teams TeamA TeamB
0 TeamA v Teamb TeamA Teamb
1 TeamA v Teamb TeamA Teamb
2 TeamA v Teamb TeamA Teamb
split函数返回的列很可能多于或少于2列。你能通过运行以下程序进行检查吗?
df.Teams.str.split((" "+"v"),expand=True)
如果它返回的列超过2列,则只需要提取所需的列。