Как я могу получить результат ofr Dataframe в терминах других элементов массива, используя лямбду - PullRequest
0 голосов
/ 06 апреля 2020

У меня проблема с тем, как получить результат выбора страны в терминах элементов массива.

Я могу перечислить некоторые страны, определенные в кадре данных

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]) ])] 

Как я могу это исправить?

Ответы [ 3 ]

1 голос
/ 06 апреля 2020

Лучший способ сделать это -

df.loc[df['Country'] == df['Country_Region']]
1 голос
/ 06 апреля 2020

Я думаю, что вы ищете pandas .apply .

Вы можете сделать что-то вроде этого:

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

Затем вы можете использовать .lo c для выбора строк, соответствующих этому условию.

Признаюсь, я не уверен, что понял ваш вопрос, поэтому надеюсь, что это поможет.

Кроме того, вы можете использовать pandas .iterrows для итерации по строки DataFrame (это не отвечает на ваш вопрос, но кажется, что вы делали это в начале вашего сообщения :))


Редактировать: ответ ниже Вишнудева на самом деле лучший ответ в этот случай:

df.loc[df.loc[:, 'Country'] == df.loc[:, 'Country_Region'], :]
0 голосов
/ 06 апреля 2020

Я могу решить это с помощью этого кода

corona_confirmed_df = corona_df[corona_df['Country'].isin([ str(df_confirmed['Country_Region'][i]) for i in range(df_confirmed.shape[0]) ])] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...