可以将 Python 中函数的输出作为列添加到数据框中吗

Can one add the output of a function in Python as a column to a dataframe

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

我使用了 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))

这里是a screenshot of my error,了解更多详情。

是的,你可以使用函数。你快到了。如果您的函数采用单个参数,并且您正在应用于列,则无需添加参数。如果你想使用多个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)

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