我正在寻找一种方法来检查一个字符串是否可以在另一个字符串中找到。str.contains仅采用固定字符串模式作为参数,我宁愿在两个字符串列之间进行按元素比较。
import pandas as pd
df = pd.DataFrame({'long': ['sometext', 'someothertext', 'evenmoretext'],
'short': ['some', 'other', 'stuff']})
# This fails:
df['short_in_long'] = df['long'].str.contains(df['short'])
Run Code Online (Sandbox Code Playgroud)
预期输出:
[True, True, False]
Run Code Online (Sandbox Code Playgroud) 如果之前有人问过这个问题,我会道歉,但我看起来很广泛而没有结果.
import pandas as pd
import numpy as np
df = pd.DataFrame(data = np.random.randint(1,10,10),columns=['a'])
a
0 7
1 8
2 8
3 3
4 1
5 1
6 2
7 8
8 6
9 6
Run Code Online (Sandbox Code Playgroud)
我想根据一些规则创建一个新的列b来映射几个值a,比如a = [1,2,3]是1,a = [4,5,6,7]是2,a = [8 ,9,10]是3.一对一的映射对我来说很清楚,但是如果我想通过值列表或范围进行映射呢?
我沿着这些方向努力......
df['b'] = df['a'].map({[1,2,3]:1,range(4,7):2,[8,9,10]:3})
Run Code Online (Sandbox Code Playgroud)