簡體   English   中英

從循環創建一個新列

[英]create a new column from a loop

我有一個 dataframe 包含一堆 ip 地址和日期。 我想創建一個新列,指示這些 ip 地址來自哪個國家/地區

給我國家的代碼如下,但我想創建一個循環來替換下面行中的每個 id 地址,並將結果存儲為一個新列或一個新列表,我可以將它 append 到 df。

from ip2geotools.databases.noncommercial import DbIpCity
response = DbIpCity.get('40.77.167.144', api_key='free')
response.country

謝謝!

使用applylambda function

讓您的 DataFrame 有一個“IP”列,您可以嘗試以下操作:

df['Country'] = df.apply(lambda row: DbIpCity.get(row.IP, api_key='free').country, axis=1)

例子

# Sample DataFrame
df = pd.DataFrame({'IP': ['40.77.167.144', '5.39.7.103']})

    IP
0   40.77.167.144
1   5.39.7.103

結果

df['Country'] = df.apply(lambda row: DbIpCity.get(row.IP, api_key='free').country, axis=1)

    IP              Country
0   40.77.167.144   US
1   5.39.7.103      FR

暫無
暫無

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

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