我有一个dataframe列值
"assdffjhjhjh(12tytyttyt)bhhh(AS7878788)"
我需要从后面修剪它,即我的结果值应该是AS7878788
。你知道吗
我正在做以下工作:
newdf=pd.DataFrame(df.COLUMNNAME.str.split('(',1).tolist(),columns = ['col1','col2'])
df['newcol'] = newdf['col2'].str[:10]
在上面的Dataframe列中,这给出了输出“12tyttyt”,但是我的预期输出是“as788”
有人能帮忙吗?你知道吗
您可以使用正则表达式来查找“两个括号之间的值”的所有实例,然后拉出最后一个实例。例如,如果我们有以下数据:
我们确实:
这让我们:
为了解释正则表达式正在做什么,它试图找到我们拥有的所有实例:
如果我们从前面语句的末尾取
.str[-1]
,我们可以看到这是如何工作的,正如df['col'] = df['col'].str.findall(r'\(([^\(^\)]+)\)')
给我们的:让我们首先在纯Python中使用一个常规字符串:
在这里,我们从右开始按开括号拆分(为了提高效率,将拆分计数限制为1),提取最后一个拆分,并提取除最后一个字符以外的所有字符。你知道吗
然后,您可以通过
pd.Series.str
方法将此应用于熊猫:下面是一个演示:
请注意,上面的解决方案非常特定于作为示例提供的字符串。要获得更灵活的选择,请考虑使用regex。你知道吗
相关问题 更多 >
编程相关推荐