как применить несколько нормализаций к столбцам в кадре данных панд между различными диапазонами

Не уверен, что это лучшая практика ...

Предложение: не реализуйте это или что-нибудь, когда вы не уверены. Переоценивайте, когда факты известны, затем выполните до / после проверок производительности.

0
задан Mario 19 January 2019 в 23:49
поделиться

2 ответа

Возможно, попробуйте изменить один столбец за раз:

for i in main_data:
    min_val = df[i].min()
    max_val = df[i].max()
    if 'C' in i:
        #Applying normalization for C between [-40,+150]
        new_value = normalize(df[i].values, min_val, max_val, -40, 150)
    else:
        #Applying normalization for A , B between [-1,+1]
        new_value = normalize(df[i].values, min_val, max_val, -1, 1)
    df_norm[i] = new_value 

# df_norm = pd.df(new_value)
0
ответ дан Marcos Pires 19 January 2019 в 23:49
поделиться

Вот рабочий пример с возможным решением:

import pandas as pd
import random
import numpy as np

a = list(random.sample(range(0,1000),100))
b = list(random.sample(range(0,1000),100))
c = list(random.sample(range(0,1000),100))

df = pd.DataFrame({'A':a, 'B':b, 'C': c})

my_dct = {'key_a': [],'key_b': [],'key_c': []}
for i in df.columns:
    min_val = df[i].min()
    max_val = df[i].max()
    if i=='C':
        #Applying normalization for C between [-40,+150]
        my_dct['key_c'] = normalize(df[i].values, min_val, max_val, -40, 150)
    elif i=='A':
        #Applying normalization for A , B between [-1,+1]
        my_dct['key_a'] = normalize(df[i].values, min_val, max_val, -1, 1)
    else:
        my_dct['key_b'] = normalize(df[i].values, min_val, max_val, -1, 1)

df2 = pd.DataFrame(my_dct)

df2.to_csv('my_file.csv')
0
ответ дан Lucas 19 January 2019 в 23:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: