【发布时间】:2021-05-12 16:18:24
【问题描述】:
我有一个像这样的 df:
Team, Conf, 20_rec
0 Miami (FL) (ACC), None, 7-6
1 UCF (AAC), None, 6-4
我想将 Team 和 Conf 分开来实现以下目标:
Team, Conf, 20_rec
0 Miami (FL), ACC, 7-6
1 UCF , AAC, 6-4
我知道我可以将底行分隔为:df[['Team','Conf'] = df.Team.str.split('(', expand = True)
我尝试设置条件和 if 语句来检查行是否包含给定值,检查给定团队是否包含在异常列表中,并尝试使用反向拆分来捕获最终的括号值,但似乎没有工作。
exceptions = ['Miami (FL) (ACC)', 'Miami (OH) (MAC)']
for exception in exceptions:
if df[~df['Team'].str.contains(exception):
df[['Team','Conf'] = df.Team.str.split('(', expand = True)
else:
df[['Team','Conf'] = df.Team.str.split('\) \(', expand = True)
指向 if 语句的行,返回:
ValueError: The truth value of a DataFrame is ambiguous. Us a.empty, a.bool(), a.item(),a.any(), or a.all().
我想查看每一行,而不是集体行,也不想将 True/False 返回到 Conf 列,但实际上想要一个会议。
很抱歉没有包含更多代码示例;我偏离了最初的意图,以至于我不知道什么是接近的,但认为这是更接近的尝试之一。谢谢!!
【问题讨论】:
标签: python pandas dataframe if-statement split