繁体   English   中英

使用Pandas str.contains逐行比较

[英]Using Pandas str.contains to compare row-by-row

我已经建立了以下非常简单的数据库来说明我正在尝试做的事情:

teams = pd.DataFrame({"spreads":['New England Patriots -7.0','Atlanta Falcons 2.5','New Orleans Saints -4.5']})
teams['home'] = ['New England Patriots','Carolina Panthers','New Orleans Saints']
teams['away'] = ['Miami Dolphins','Atlanta Falcons','Tampa Bay Buccaneers']

我实质上是在尝试提取价差值。 最初,我尝试使用str.contains首先提取团队名称,从而分离出数值,但似乎我不能将其用作比较工具来进行逐行分析。 如果有人对如何提取数值有任何提示(我不认为我可以使用正则表达式,因为在某些情况下不会出现“-”号),或者至少告诉我使用什么方法来确定数值是否正确。每行列出的团队是主队还是客队,我将不胜感激。

使用.str.extract

teams.spreads.str.extract(r'(-?\d+\.?\d*)', expand=False)

0    -7.0
1     2.5
2    -4.5
Name: spreads, dtype: object

范西尔

teams.spreads.str.extract(r'(?P<spread_val>-?\d+\.?\d*)', expand=True)

在此处输入图片说明

试试这个分割字符串

teams['spreads_val'] = teams['spreads'].str.rsplit(" ").str.get(-1)

0    -7.0
1     2.5
2    -4.5
Name: spreads_vals, dtype: object

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM