从循环中创建新列

2024-06-25 22:32:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框,包含一堆ip地址和日期。我想创建一个新的列,指出这些ip地址的来源,即国家

下面是给出国家的代码,但我想创建一个循环,替换下一行中的每个id地址,并将结果存储为一个新列或一个新列表,我可以将其附加到df中

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

谢谢大家!


Tags: 数据代码fromipiddf列表response
1条回答
网友
1楼 · 发布于 2024-06-25 22:32:14

使用applylambda函数

让您的数据帧具有列“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

相关问题 更多 >