0

我有一系列国家。我想通过一个函数运行这个数组,并将函数的输出作为列附加到数据框。

我使用了该apply方法,但不断获得KeyError. 我不确定我做错了什么。

代码

import matplotlib.pyplot as plt
import pandas as pd
import pycountry_convert as pc

data - pd.read_csv('/content/2019.csv', index_col=0)
data.loc[71, 'Country or region'] = 'Trinidad and Tobago'

country_region = data['Country or region']

for country in country_region:
    country_code = pc.country_name_to_country_alpha2(country)
    data['Continent'].apply(pc.country_alpha2_to_continent_code(country_code))

这是我的错误的屏幕截图,以获取更多详细信息。

4

1 回答 1

0

是的,您可以使用函数。你快到了。如果您的函数采用单个参数,并且您正在应用于列,则无需添加参数。如果你想使用多个 args,你可以结合 apply 和 lambda。

在您的情况下不需要 lambda,这应该可以解决它:

data = pd.read_csv('/content/2019.csv', index_col=0)
data.loc[71, 'Country or region'] = 'Trinidad and Tobago'
data['country_code'] = data['Country or region'].apply(pc.country_name_to_country_alpha2)
data['Continent'] = data.country_code.apply(pc.country_alpha2_to_continent_code)

为了将来参考,您可以复制问题中的代码,而不是附上屏幕截图。

于 2021-09-27T21:33:50.623 回答