Эффективно конвертировать точки панды с фильтром в полярыPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Эффективно конвертировать точки панды с фильтром в поляры

Сообщение Anonymous »

Как эффективно преобразовать приведенный ниже код pandas в поляры. Приведенный ниже df представляет собой образец df. Исходный df намного больше по размеру и содержит более 5 миллионов строк данных. Я создал сводный df из полярных данных, но не знал, как его фильтровать, чтобы получить нужные данные, как показано в pandas df_final df.

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

import polars as pl
import pandas as pd

df = pd.DataFrame({
'col1': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
'col2': ['test1', 'test1', 'test1', 'test1', 'test2', 'test2', 'test2',
'test2', 'test3', 'test3', 'test3', 'test3', 'test4', 'test5',
'test1', 'test1', 'test1', 'test3', 'test4'],
'col3': ['t1', 't1', 't1', 't1', 't1', 't1', 't1', 't1', 't1', 't1', 't1',
't1', 't1', 't1', 't1', 't1','tl','tl','tl'],
'col4': ['input1', 'input2', 'input3', 'input4', 'input1', 'input2',
'input3', 'input4', 'input1', 'input2', 'input3', 'input5',
'input2', 'input6', 'input1', 'input1', 'input2', 'input2',
'input2'],
'col5': ['result1', 'result2', 'result3', 'result4', 'result1', 'result2',
'result3', 'result4', 'result1', 'result2', 'result3', 'result4',
'result2', 'result1', 'result2', 'result6', 'result1', 'result1', 'result1'],
'col6': [10, 20, 30, 40, 10, 20, 30, 40, 10, 20, 30, 50, 20, 100, 10, 10, 20, 20, 20],
'col7': [100.2, 101.2, 102.3, 101.4, 100.0, 103.0, 104.0, 105.0, 102.0,
87.0, 107.0, 110.2, 120.0, 88.0, 106.2, 101.1, 100, 90.2, 110]
})

p_df = df.pivot_table(values='col7', index=['col4', 'col5', 'col6'], columns=['col2'], aggfunc='max')
df_final = p_df[((p_df.groupby(level=0).rank(ascending=False) == 1.).any(axis=1))&(p_df>100).any(axis=1)]
print(df_final)

# Start of polars code
df_p = pl.from_pandas(df)

# Group by columns
p_df = df_p.pivot(on='col2', index=['col4', 'col5', 'col6'], values='col7')

Любой вклад приветствуется. Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/776 ... fficiently
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Поляры: как узнать количество столбцов в выражении поляры?
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Поляры: как узнать количество столбцов в выражении поляры?
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Поляры + Паркет vs. Поляры + MySQL?
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Поляры + Паркет vs. Поляры + MySQL?
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Почему мои поляры медленнее, чем панды, при простом разделении столбцов?
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

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