【发布时间】:2022-01-12 20:53:19
【问题描述】:
我想知道如何将熊猫数据框列值传递给正则表达式。我已经尝试了以下但得到“TypeError:'Series'对象是可变的,因此它们不能被散列”
我在下面的结果之后。 (我可以使用不同的正则表达式,但想知道如何动态完成)
想法表示赞赏:)
to_search search_string search_result
ABC-T3-123 ABC ABC-T3
ABC-T2-123 ABC ABC-T3
DEF-T1-123 ABC DEF-T1
import pandas as pd
# create list for data frame
data = [['ABC-T3-123', 'ABC'], ['ABC-T2-123', 'ABC'], ['DEF-T1-123', 'DEF']]
# Create the pandas DataFrame
df = pd.DataFrame(data, columns = ['to_search', 'search_string'])
df['search_results']=df['to_search'].str.extract("(" + df['search_string'] + "-T[0-9])")}```
【问题讨论】:
-
你不能这样做。 :( 相反,
.str.extract("(\w+-T[0-9])")怎么样?即使可以,它也可能会很慢,因为它会为每一行动态生成一个正则表达式。 -
谢谢 - 但有点通用。希望采用动态方法。