繁体   English   中英

从 pandas dataframe 列中的字符串中提取数字

[英]extract number from string in pandas dataframe column

我有一个以下格式的 dataframe 并尝试使用提取 function 但我不断收到以下错误:

ValueError:如果使用所有标量值,则必须传递索引

column1    column2
1         abc2150/abc2152/abc2154/abc215601/U215602


df.column2.str
    .split('/',expand=True)
    .apply(lambda row: row.str.extract('(\d+)', expand=True))
    .apply(lambda x: '/'.join(x.dropna().astype(str)), axis=1)

我需要以下格式的 output。

column1    column2
1         2150/2152/2154/215601/215602

请让我知道如何解决它。

谢谢

您可以改为使用带有正向前瞻的str.replace来删除数字部分之前的所有字符:

df.column2.str.replace(r'[a-zA-Z]+(?=\d+)','')

 0    2150/2152/2154/215601/215602
Name: column2, dtype: object

为什么不?

df['column2']=df.column2.str.replace('abc','')

这是我要做的:

df.loc[:, "column2"] = df.column2.apply(lambda x: re.sub("[a-zA-Z]+", "", x))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM