我有一个字典,看起来像这样: di = {1: "A", 2: "B"}
我想将它应用于数据帧的"col1"列,类似于:
col1 col2
0 w a
1 1 2
2 2 NaN
Run Code Online (Sandbox Code Playgroud)
要得到:
col1 col2
0 w a
1 A 2
2 B NaN
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能做到最好?出于某种原因谷歌搜索与此相关的术语只显示了如何从dicts制作列的链接,反之亦然: - /
我需要过滤pandas
数据框中的行,以便特定的字符串列包含至少一个提供的子字符串列表.子字符串可能包含异常/正则表达式字符.比较不应涉及正则表达式,并且不区分大小写.
例如:
lst = ['kdSj;af-!?', 'aBC+dsfa?\-', 'sdKaJg|dksaf-*']
Run Code Online (Sandbox Code Playgroud)
我目前正在应用这样的面具:
mask = np.logical_or.reduce([df[col].str.contains(i, regex=False, case=False) for i in lst])
df = df[mask]
Run Code Online (Sandbox Code Playgroud)
我的数据帧很大(约1十亿行),lst
长度为100.是否有更有效的方法?例如,如果lst
找到第一个项目,我们不应该测试该行的任何后续字符串.