【发布时间】:2018-03-01 15:07:34
【问题描述】:
所以我有一个数据框,其中有一列中有一些文本。 我试图在列的每一行中找到 2 个字符串,然后在这两个字符串之间分割行文本以获得一个子字符串。像这样的:
startinds = df[column].str.find("First Event = ")
endinds = df[column].str.find("\nLast Event = ")
df["first_timestamp"] = df[column].str.slice(startinds,endinds)
现在这不起作用,因为startinds 和endinds 是系列,所以我不能将它们用作对column 中的字符串进行切片的索引。
有人知道我可以访问这些值以在每一行上执行子字符串的方法吗?
示例输入:
Data
0 "Blahblah
First Event = 09/20/2017 12:00:00
Last Event = 09/20/2017 13:00:00
Blahblahblah"
1 "Blahblahblahblah
Blahablahblah
First Event = 09/20/2017 12:30:00
Last Event = 09/20/2017 12:45:00
Blahblahblah"
输出:
first_timestamp
0 "First Event = 09/20/2017 12:00:00"
1 "First Event = 09/20/2017 12:30:00"
【问题讨论】:
-
这是一个open issue on github。您很可能必须手动完成。
-
做
"First Event = " + df.Data.str.extract('(?<=First Event = )(.*)(?=\\\\nLast Event)', expand=False)?
标签: python python-2.7 pandas substring