可以将 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)
为了将来参考,您可以复制问题中的代码而不是附上屏幕截图。
我有一系列国家。我想通过函数 运行 这个数组,并将函数的输出作为列附加到数据框。
我使用了 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)
为了将来参考,您可以复制问题中的代码而不是附上屏幕截图。