我是一个有用的助手,可以翻译文本。
我需要从Pandas df中提取子字符串,并将它们放入新列中。我的字符串看起来像:
此外,子字符串可以在数据帧的两个不同列中(即使只出现一次),因为数据帧看起来像这样:
我希望能获得类似以下的内容:
我需要从Pandas df中提取子字符串,并将它们放入新列中。我的字符串看起来像:
hj_yu_fb824_as22
jk_yu_fb638
我需要提取:
fb824
fb638
此外,子字符串可以在数据帧的两个不同列中(即使只出现一次),因为数据帧看起来像这样:
col1 col2
mf_lp_gn817_ml46 d_nb_05340.gif
desktop_300x250_mf mf_lp_fb824_ml46.html
desktop_300x250_mf dd_lp_ig805.html
desktop_728x90_mf mf_lp_fb824_ml46.html
我希望能获得类似以下的内容:
col1 col2 col3
mf_lp_gn817_ml46 d_nb_05340.gif gn817
desktop_300x250_mf mf_lp_fb824_ml46.html fb824
desktop_300x250_mf dd_lp_ig805.html ig805
desktop_728x90_mf mf_lp_fb824_ml46.html fb824
因此,子字符串看起来像:
1)开头是两个小写字母,后跟3个数字 2)在两个''之间或只有一个''之间,或者在'_'和'.'之间的其他字符之间
我想到了:
\_([^()]*)\_
但是它只匹配在“_”之间的任何内容,而不考虑上述描述的模式。
此外,如何有效地将正则表达式应用于Pandas数据框?
以下是可重现的数据框:
df = DataFrame({'col1': {0: 'mf_lp_gn817_ml46',
1: 'desktop_300x250_mf',
2: 'desktop_300x250_mf',
3: 'desktop_728x90_mf'},
'col2': {0: 'd_nb_05340.gif ',
1: 'mf_lp_fb824_ml46.html ',
2: 'dd_lp_ig805.html ',
3: 'mf_lp_fb824_ml46.html '},
'col3': {0: 'gn817', 1: 'fb824', 2: 'ig805', 3: 'fb824'}})