所以我有一个数据帧,其中一列有一些文本。 我试图在列的每一行中找到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
中的字符串。在
有谁知道我可以访问值来处理每行的子字符串吗?在
输入示例:
^{pr2}$输出:
^{3}$
要完成切片方法,可以使用lambda,即将}存储在df中,然后根据列使用lambda跨列(注意,需要一个转义字符来获取
startinds
和{\n
)输出:
^{pr2}$与评论中的答案不同,这种使用
Series.str.extract
的方法应该可以工作:模式
'(First Event = .+)'
捕获一个组(即()
),其中“First Event=”后跟一个或多个字符(即.+
),在换行处停止(.
字符匹配除换行符外的任何内容)。在相关问题 更多 >
编程相关推荐