在熊猫系列中选择字符串的一部分

时间:2020-07-06 14:48:54

标签: python regex pandas dataframe series

我有一个字符串如下:2020-01-01T16:30.00 - 1.00。我想选择T -之间的字符串,即我希望能够从整个字符串中选择16:30.00并将其转换为浮点数。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

如果您有这样的熊猫系列s

import pandas as pd
s = pd.Series(["2020-01-01T16:30.00 - 1.00", "2020-12-04T00:25.00 - 14.00"])

您可以使用

s.str.replace(".+T", "").str.replace(" -.+", "")
# 0    16:30.00
# 1    00:25.00
# dtype: object

基本上,您首先用空字符串替换TT本身之前的所有内容。然后,用空字符串替换以 -开头的部分(小破折号前有一个空格)。


另一种选择是使用正则表达式组来匹配特定模式,并仅选择一组(在本例中为第二组,.+

import re
s.apply(lambda x: re.match("(.+T)(.+)( -.+)", x).group(2))
# 0    16:30.00
# 1    00:25.00
# dtype: object