Функция Pandas isin в полярахPython

Программы на Python
Ответить
Anonymous
 Функция Pandas isin в полярах

Сообщение Anonymous »

Иногда я дохожу до того, что мне нужно запустить следующую строку:

Код: Выделить всё

DF['is_flagged'] = DF['id'].isin(DF2[DF2['flag']==1]['id'])
Например:

Код: Выделить всё

import polars as pl

df1 = pl.DataFrame({
'Animal_id': [1, 2, 3, 4, 5, 6, 7],
'age': [4, 6, 3, 8, 3, 8, 9] })

df2 = pl.DataFrame({
'Animal_id': [1, 2, 3, 4, 5, 6, 7],
'Animal_type': ['cat', 'dog', 'cat', 'cat', 'dog', 'dog', 'cat'] })
Интересно, как легко преобразовать его в поляры, не используя flag, а затем .join().

Код: Выделить всё

def isin_pandas_example(df1, df2):
df2.loc[df2['Animal_type'] == 'dog', 'dog'] = 1
df1['is_dog'] = df2['Animal_id'].isin(df2[df2['dog'] == 1]['Animal_id']).astype(int)

return pl.from_pandas(df1)

Код: Выделить всё

print(isin_pandas_example(df1.to_pandas(), df2.to_pandas()))
Ожидаемый результат:

Код: Выделить всё

shape: (7, 3)
┌───────────┬─────┬────────┐
│ Animal_id ┆ age ┆ is_dog │
│ ---       ┆ --- ┆ ---    │
│ i64       ┆ i64 ┆ i64    │
╞═══════════╪═════╪════════╡
│ 1         ┆ 4   ┆ 0      │
│ 2         ┆ 6   ┆ 1      │
│ 3         ┆ 3   ┆ 0      │
│ 4         ┆ 8   ┆ 0      │
│ 5         ┆ 3   ┆ 1      │
│ 6         ┆ 8   ┆ 1      │
│ 7         ┆ 9   ┆ 0      │
└───────────┴─────┴────────┘
Я пытался использовать функцию is_in(), но это не сработало.

Подробнее здесь: https://stackoverflow.com/questions/751 ... -in-polars
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»