首页 > 解决方案 > 如何使用 lambda 根据另一个数组项获取 Dataframe 的结果

问题描述

我有一个关于如何根据数组项选择国家/地区结果的问题。

我可以列出数据框中定义的一些国家

for i in range(df_countries.shape[0]):
    print(str(df_countries['Country_Region'][i]))

我想根据上述结果获得结果,但我不知道该怎么做。

我可以编写此代码,但它不起作用。

df.loc[df["Country"].apply(lambda x: x== [(df_countries['Country_Region'][i]) for i in range(df_countries.shape[0]) ])] 

我该如何解决?

标签: pythonpandaslambda

解决方案


我认为您正在寻找pandas.apply

你可以这样做:

df_countries.apply(lambda row: row["Country"] == row["Country_Region"], axis=1)

然后,您可以使用 .loc 选择符合此条件的行。

我承认我不确定我是否理解你的问题,所以我希望这会有所帮助。

此外,您可以使用pandas.iterrows遍历 DataFrame 的行(这不能回答您的问题,但似乎您在帖子的开头就这样做了:))


编辑:在这种情况下,Vishnudev 下面的答案实际上是一个更好的答案:

df.loc[df.loc[:, 'Country'] == df.loc[:, 'Country_Region'], :]

推荐阅读