Как улучшить время обработки pandas DF для различных комбинаций расчетных данныхPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как улучшить время обработки pandas DF для различных комбинаций расчетных данных

Сообщение Anonymous »

Предположим, у меня есть большой набор данных, например, 100 тысяч или 1 миллион строк, и у меня есть функция, которая выполняет векторные вычисления, которые теперь занимают 0,03 секунды для всех моих столбцов, прежде чем процесс может быть одинаковым для каждой итерации. Я хочу вычислить 2^n комбинаций условий, которые я создаю. Итак, в настоящее время мне потребуется 2^n * 0,03 с, чтобы запустить все это по длине цикла и запустить функцию. Есть ли лучший способ повысить производительность и запустить все эти возможности векторизованно или параллельно (не параллельно с процессором Python, это немного помогает) единственное, о чем я думаю, это создать уникальный столбец для каждой итерации и выполнить вычисления регулярных выражений, но тогда df будет слишком большим .
В этом примере, где каждая обработка занимает 0,01 мс, выходные данные будут следующими:
Общее количество комбинаций: 1023
Общее время для оценки всех комбинаций: 20,73 секунды
р>
import pandas as pd
import numpy as np
from itertools import combinations
import time

# Generate a larger DataFrame with 100,000 rows
data = {
'Height': np.random.uniform(150, 200, size=100000),
'Weight': np.random.uniform(50, 100, size=100000),
'Gender': np.random.choice(['Male', 'Female'], size=100000),
'Age': np.random.randint(18, 70, size=100000)
}

df = pd.DataFrame(data)

# Define vectorized functions for each condition with dynamic values
def calculate_bmi(height, weight):
height_m = height / 100
return weight / (height_m ** 2)

def condition_bmi(df, min_bmi, max_bmi):
bmi = calculate_bmi(df['Height'], df['Weight'])
return (min_bmi

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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