使用python,pandas
我有一个数据框,有三列和大约一百万行。第三列包含字符串。我想选择这些字符串中与列表中的字符串匹配的子集,并将它们放在第四列中。你知道吗
以下是数据帧中的字符串示例:
"BW - Jl 8 '79 - pE2 CCB-B -vl9-Ja '66-p83 LJ - v91 - Ja 15 -66 - p426
NYRB - v5 - D 9 '65 - p39 NYTBR - v70 - N 21 '65 - p60 Nat R - vl7 -
D14 '65-pll65 y"
以下是我的列表示例:
['AAA', 'A Anth', 'AAPSS-A', 'A Anth', 'A Arch', 'A Art', 'AB', 'ABA
Jour', 'ABC', 'ABR', 'AC', 'ACSB', 'Adult L', 'Advocate', 'AE', 'AER',
'AF', 'Africa T', 'Afterimage', 'Aging', 'AH', 'AHR', 'A Hy R', 'AIQ',
'AJA', 'AJES', 'AJMD', 'AJMR', 'AJP', 'A J Psy', 'AJS', 'AL', 'A Lead',
'A Lib', 'Am', 'Am Ant', 'Am Arts', 'Am Craft', 'Amer R', 'Am Ethol',
'Am Film', 'Am Mus Teach', 'Am Q', 'Ams', 'Am Sci', 'Am Spect', 'Am
Threat', 'Analog', 'ANQ', 'ANQ:QJ', 'Ant & Col Hob', 'Antiq', 'Antiq
J', 'Ant R', 'Apo', 'APR', 'APSR', 'AR', 'ARBA', 'Arch', 'Archt R',
'ARG', 'Armchair Det', 'Art Am', 'Art Bull', 'Art Dir', 'Art J', 'Art
N', 'AS', 'ASBYP', 'Aspen A', 'Aspen J', 'ASR', 'Astron', 'Ath J',
'Atl', 'Atl Pro Bk R', 'Atl PBR', 'Aud', 'AW', 'BALF', 'Ballet N',
"Barron's", 'BAS', 'BB', 'B&B', 'BC', 'BCM', 'B Ent', 'Belles Let',
'BF', 'BFYC', 'B Hor', 'BHR', 'BIC', 'Biography', 'BksW', 'Bks for
Keeps', 'Bks for YP', 'BL', 'Bloom Rev']
从dataframe中的字符串中,我想选择'BW'、'CCB-B'、'LJ'、'NYRB'、'NYTRB'和'natr'(所有这些都在列表中),并将它们放在同一行的新列中。你知道吗
我的代码如下所示:
s = df65['Review'].str.extractall(reviews_list).squeeze()
s = s.unstack(level=-1)
df65['Reviews'] = s
但extractall并没有以这种方式将列表作为参数。你知道吗
救命啊?你知道吗
str.extractall
需要正则表达式模式作为参数。你可以用但是有些字符需要转义才能与regex一起使用,所以导入
re
并使用re.escape
如下:所以你的新电话是
相关问题 更多 >
编程相关推荐