如何解决如何使用pandas从python的长url类型的字符串中提取某些字符串
如何在大熊猫中使用正则表达式提取以下字段。以下是我的pandas dataframe列值之一,但我只想提取“ eastus”并将其保留为该字段的值。如何过滤。这个位置总是固定的
样本df:
correlationId id level ... status.value status.localizedValue tag
0 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx /subscriptions/xxxxxxxxxxxxxxxxxxxxx/resourcegroups/xxxxxxxxxxxx/providers/Microsoft.RecoveryServices/locations/eastus/events/xxxxxxxxxxxx/ticks/xxxxxxxx Informational ... Succeeded Succeeded Managed by IT
我尝试的命令:
if not df.empty:
columns = ["correlationId","eventName.value","id","resourceGroupName","resourceProviderName.value","operationName.value","status.value","eventTimestamp","submissionTimestamp"]
df.columns = df.columns.to_series().apply(lambda x: x.strip())
#print(df.columns)
df.fillna('Missing',inplace=True)
drop_these = ['correlationId']
df['Location'] = df.id.str.split("/")[8]
但不起作用
错误:
df['Location'] = df.id.split("/")[8]
File "C:\Python37\lib\site-packages\pandas\core\generic.py",line 5274,in __getattr__
return object.__getattribute__(self,name)
AttributeError: 'Series' object has no attribute 'split'
有什么建议
解决方法
id = '/subscriptions/xxxxxxxx/resourcegroups/xxxxxxxx/providers/Microsoft.RecoveryServices/' \
'locations/eastus/events/xxxxxxx/ticks/xxxxx'
df = pd.DataFrame({
'sample':[id]
})
df['Location'] = df['sample'].str.split("/",expand=True)[8]
print(df)
sample Location
0 /subscriptions/xxxxxxxx/resourcegroups/xxxxxxxx/providers/Microsoft.RecoveryServices/locations/eastus/events/xxxxxxx/ticks/xxxxx eastus
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。