拆分 url 并在列中从该 URl 获取值
Posted
技术标签:
【中文标题】拆分 url 并在列中从该 URl 获取值【英文标题】:splitting url and getting values from that URl in columns 【发布时间】:2019-04-01 13:30:25 【问题描述】:嗨,我说我在数据框中有一列 名称提交包含 - mhttps://ckd.pdc.com/pdc/73ba5189-94fd-44aa-88d3-6b36aaa69b02/DDA1610095.zip
我想要一列说 Zest,我想要该列中的值 DDA1610095。
一个新的列说类型并希望在该列中使用 .zip 如何使用 pandas 来做到这一点。
【问题讨论】:
请从您的数据和预期输出中添加一个示例 示例 url - ckd.pdc.com/pdc/73ba5189-94fd-44aa-88d3-6b36aaa69b02/… ,预期 - .zip 在单独的列中,'DDA1610095 在单独的列中 您应该尝试以更好、更规范的方式提出问题,检查发布问题的规则,因为其他人不知道您的问题,因此清晰明确很重要。我试图回答你的问题。不要气馁! 【参考方案1】:尝试使用str.split
并添加另一个str
,以便您可以索引每一行。
data = ['ID' : '1',
'URL': 'https://ckd.pdc.com/pdc/73ba5189-94fd-44aa-88d3-6b36aaa69b02/DDA1610095.zip']
df = pd.DataFrame(data)
print(df)
ID URL
0 1 https://ckd.pdc.com/pdc/73ba5189-94fd-44aa-88d...
#Get the file name and replace zip (probably a more elegant way to do this)
df['Zest'] = df.URL.str.split('/').str[-1].str.replace('.zip','')
#assign the type into the next column.
df['Type'] = df.URL.str.split('.').str[-1]
print(df)
ID URL Zest Type
0 1 https://ckd.pdc.com/pdc/73ba5189-94fd-44aa-88d... DDA1610095 zip
【讨论】:
【参考方案2】:你可以使用str.split
从url中提取zip
df
url
0 mhttps://ckd.pdc.com/pdc/73ba5189-94fd-44aa-88d3-6b36aaa69b02/DDA1610095.zip
df['zip'] = df.url.str.split('/',expand=True).T[0] \
[df.url.str.split('/',expand=True).T.shape[0]-1]
df.T
Out[46]:
0
url mhttps://ckd.pdc.com/pdc/73ba5189-94fd-44aa-88d3-6b36aaa69b02/DDA1610095.zip
zip DDA1610095.zip
【讨论】:
以上是关于拆分 url 并在列中从该 URl 获取值的主要内容,如果未能解决你的问题,请参考以下文章
如何计算某些值在 SQL 表中出现的次数并在列中返回该数字?