根据另一个数据框中的另一列修改一个数据框中的列(Pandas)

问题描述:

使用Python 3,我试图用一个URL放入一个URL中,该URL已放入一个Dataframe中,并使用732行相同的URL 。这是网址:http://dbarchive.biosciencedbc.jp/kyushu-u/hg19/eachData/bed20/**ID**.bed根据另一个数据框中的另一列修改一个数据框中的列(Pandas)

我有另一个Dataframe,其中包含732行不同的实验ID。我希望能够用每个实验ID替换URL中的“ID”这个单词,这样我就可以获得一个更新的Dataframe,并且每一个需要将.bed文件下载到Python的732个URL。

作为一个备注 - 从那里,有没有可能下载.bed文件到Python,而无需先通过我的浏览器保存它,然后将其上传到Python?

这看似简单,可与(简单)df.apply来完成:

设置:

import random 
url = 'http://.../bed20/%s.bed' 
df1 = pd.DataFrame({'ID': [str(random.randint(0, 100)) for _ in range(20)]}) 

In [674]: df1['ID'].apply(lambda x: url %x).head() 
Out[674]: 
0 http://.../bed20/58.bed 
1 http://.../bed20/92.bed 
2 http://.../bed20/63.bed 
3 http://.../bed20/46.bed 
4 http://.../bed20/63.bed 
Name: ID, dtype: object 

换成您自己的网址,ID dataframes。

+0

实际的实验ID是由数字和字母组成,不能是随机的。我怎么做? – Lauren

+0

@Lauren无论你有什么ID,它的工作方式都是一样的。我无法解决你的问题,因为我没有你的数据。但是我已经告诉你如何解决你的问题。 –

我会使用applyformat

fmt = 'http://dbarchive.biosciencedbc.jp/kyushu-u/hg19/eachData/bed20/{}.bed' 
df.ID.apply(fmt.format) 
+0

如何从我的其他数据框中插入ID?请记住,有732个唯一ID,因此我必须创建732个唯一的网址? – Lauren