如何提取熊猫数据帧中的特定内容



我想从字符串中提取特定的内容。考虑以下数据帧:

data = {'time': [0, 1, 2, 3, 4], 'id': ["bike0", "bike10", "veh0", "veh10", "moto100"]}  
df = pd.DataFrame(data)

我想用正则表达式提取字符串中的数字值。最终结果应该是:

data = {'time': [0, 1, 2, 3, 4], 'id': [0, 10, 0, 10, 100]}  
df = pd.DataFrame(data)

这里的困难在于字符串的长度和要提取的位数是可变的。

谢谢你的帮助。

您可以在id列中的每个字符串的末尾获取一系列数字,然后将它们转换为整数并重新分配给id列。

df['id'] = df.id.str.extract(r'(d+)$').astype(int)

我希望下面的代码是可以的。它删除了所有的alpha字符。您可以将其扩展为特殊字符。

import pandas as pd
data = {'time': [0, 1, 2, 3, 4], 'id': ["bike0", "biKe10", "veh0", "veh10", "moto100"]}  
df = pd.DataFrame(data)
df["id"] = df["id"].str.replace(r"[a-z]","", case=False)
print(df)

最新更新