1

请需要返回字符串的一部分

我有这个(例子):

df = pd.DataFrame({'vals': [1, 2, 3, 4], 'ids': ['XXX2100M', 'yyyy2100M', 'AAA850M', 
    'BBB2100M']})

我的目标:

  vals        ids    test
0    1   XXX2100M   2100M
1    2  yyyy2100M   2100M
2    3    AAA850M   
3    4      2100M   2100M

['test']仅当我在字符串上有“2100M”时进行修改。

4

2 回答 2

2

我们可以np.where使用str.contains

import numpy as np

df['test'] = np.where(df.ids.str.contains('2100M'), '2100M', '')

print(df)

   vals        ids   test
0     1   XXX2100M  2100M
1     2  yyyy2100M  2100M
2     3    AAA850M       
3     4   BBB2100M  2100M
于 2020-03-20T13:19:20.370 回答
1

使用str.extractwhich 接受正则表达式作为参数

df['test'] = df['ids'].str.extract('(2100M)').fillna('')

print(df)

   vals        ids   test
0     1   XXX2100M  2100M
1     2  yyyy2100M  2100M
2     3    AAA850M       
3     4   BBB2100M  2100M
于 2020-03-20T13:20:41.897 回答