Python 3只的大熊猫如何提取两者之间的串“_”,用在DF错误处理?

问题描述 投票:1回答:1

这个问题是比较接近现有的有关提取字符串的答案,但我的数据有技术的曲折它。东风列数据是这样的:

Col1:
2909_10_2018
2909_14_2019
32_13_2019
4200_14_2018
4124__2019

目的是提取两者之间的串“_”,但有时候没有字符串。

我试图张贴在类似主题无济于事多种解决方案:

try:
   df['Col2'] = re.search('.*abc_[^_]*', df.Col1)
except:
   TypeError:
   df['Col2'] = ''

生产“”

try:
   df['Col2'] = re.search('_(.*)_', df.Col1)
except:
   TypeError:
   df['Col2'] = ''

生产“”

df['Col2'] = df.Col1.str.split("_", n = 1, expand = True)

结果ValueError异常:数项错误过去了2,安置意味着1。

什么是一个很好的Python的方式来提取“_”,同时处理遗漏之间的文本?

python-3.x string extract
1个回答
2
投票

考虑到格式不改变,你可以为你必须为每个行做同样的操作使用lambda功能。下面的代码将创建一个空字符串的新列以及。

码:

df['Col2'] = df.Col1.apply(lambda x: x.split('_')[1])

输出:

    Col1           Col2
0   2909_10_2018    10
1   2909_14_2019    14
2   32_13_2019      13
3   4200_14_2018    14
4   4124__2019  
© www.soinside.com 2019 - 2024. All rights reserved.