Python 使用pandas将列中的值格式化为字符串
使用Python3,我试图用732行相同的URL替换我放在数据框中的URL中的某个单词。这是URL:Python 使用pandas将列中的值格式化为字符串,python,string,pandas,dataframe,Python,String,Pandas,Dataframe,使用Python3,我试图用732行相同的URL替换我放在数据框中的URL中的某个单词。这是URL:http://dbarchive.biosciencedbc.jp/kyushu-u/hg19/eachData/bed20/**ID**.bed 我有另一个数据帧,它包含732行不同的实验ID。我希望能够将URL中的单词“ID”替换为每个实验ID,这样我就可以用732个URL中的每一个获得更新的数据帧,我需要将.bed文件下载到Python中 作为旁注-从那里,是否可以将.bed文件下载到Pyt
http://dbarchive.biosciencedbc.jp/kyushu-u/hg19/eachData/bed20/**ID**.bed
我有另一个数据帧,它包含732行不同的实验ID。我希望能够将URL中的单词“ID”替换为每个实验ID,这样我就可以用732个URL中的每一个获得更新的数据帧,我需要将.bed文件下载到Python中
作为旁注-从那里,是否可以将.bed文件下载到Python中,而不必首先通过我的浏览器保存它,然后将其上载到Python中?使用
map
和str.format
import random
# Setup
url = 'http://.../bed20/{}.bed'
np.random.seed(0)
df = pd.DataFrame({'ID': np.random.choice(100, 5).astype(str)})
替换为您自己的URL和ID数据帧
或者,使用列表理解(在性能方面应该大致相同)
我会使用
apply
和format
fmt = 'http://dbarchive.biosciencedbc.jp/kyushu-u/hg19/eachData/bed20/{}.bed'
df.ID.apply(fmt.format)
实际的实验ID由数字和字母组成,不能随机化。我该怎么做?@Lauren不管你有什么身份证都是一样的。我不能帮你解决你的问题,因为我没有你的数据。但是我已经向您展示了如何解决您的问题。但是我如何从其他数据帧插入ID?记住有732个唯一的ID,所以我必须创建732个唯一的URL?
[url.format(x) for x in df['ID']]
# ['http://.../bed20/44.bed',
# 'http://.../bed20/47.bed',
# 'http://.../bed20/64.bed',
# 'http://.../bed20/67.bed',
# 'http://.../bed20/67.bed']
df.assign(ID=[url.format(x) for x in df['ID']])
ID
0 http://.../bed20/44.bed
1 http://.../bed20/47.bed
2 http://.../bed20/64.bed
3 http://.../bed20/67.bed
4 http://.../bed20/67.bed
fmt = 'http://dbarchive.biosciencedbc.jp/kyushu-u/hg19/eachData/bed20/{}.bed'
df.ID.apply(fmt.format)