簡體   English   中英

根據另一行中的對應行過濾 dataframe

[英]Filter dataframe based on corresponding rows in another one

想要創建 df3,其中 url 將來自 df1,流量值來自 df2 中的相應行。

當前代碼:

import pandas as pd 


data = [['http://url1.com'], ['http://url3.com']]
data_2 = [[{'url':'http://url1.com', 'traffic':100}], [{'url':'http://url2.com', 'traffic':200}], [{'url':'http://url3.com', 'traffic':300}]] 

df1 = pd.DataFrame(data=data, columns=['url'])
df2 = pd.DataFrame(data=data_2, columns=['url', 'traffic'])


df3 = pd.merge(left=df1, right=df2, on='url')

預期 output:



                             url traffic
0                 http://url1.com  100
1                 http://url3.com  300

當前 output:

ValueError: 2 columns passed, passed data had 1 columns

關於 https 和 http,您需要確保覆蓋dataframe

import pandas as pd 

data = [['https://url1.com'], ['https://url3.com']]
data_2 = [[{'url':'http://url1.com', 'traffic':100}], [{'url':'http://url2.com', 'traffic':200}], [{'url':'http://url3.com', 'traffic':300}]] 
df1 = pd.DataFrame(data=data, columns=['url'])
df2 = pd.DataFrame([row[0] for row in data_2])

df1 = df1.replace(to_replace = 'https', value='http', regex=True)
df3 = pd.merge(left=df1, right=df2, on='url')
print(df3)
               url  traffic
0  http://url1.com      100
1  http://url3.com      300

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM