У меня большой массив данных, который содержит два индекса. Первый - это индексирование даты, а второй - индекс меток, который происходит каждый день в произвольном порядке. Каждый столбец должен быть нормализован или масштабирован между -1 и 1 ежедневно. Iv'e приложил изображение, которое показывает области, которые должны быть нормализованы. Так что в основном мне нужны данные, нормализованные по столбцам и дням, если это имеет смысл. Поскольку данные, с которыми я работаю, настолько велики, я включил некоторый пример кода, который генерирует реплику для тестирования.
import pandas as pd
import numpy as np
#For repeatability
np.random.seed(0)
#The index's
arrays = [
np.array([
"Day1", "Day1", "Day1", "Day1", "Day1",
"Day2", "Day2", "Day2", "Day2", "Day2",
"Day3", "Day3", "Day3", "Day3", "Day3"
]),
np.array([
"a", "b", "c", "d", "e",
"a", "b", "c", "d", "e",
"a", "b", "c", "d", "e"
])
]
#Create the sample dataframe
df = pd.DataFrame(np.random.randn(15, 4), index=arrays, columns=["100", "200", "300", "400"])
#Output the dataframe
print(df) #End of code
"""
100 200 300 400
Day1 a 1.764052 0.400157 0.978738 2.240893
b 1.867558 -0.977278 0.950088 -0.151357
c -0.103219 0.410599 0.144044 1.454274
d 0.761038 0.121675 0.443863 0.333674
e 1.494079 -0.205158 0.313068 -0.854096
Day2 a -2.552990 0.653619 0.864436 -0.742165
b 2.269755 -1.454366 0.045759 -0.187184
c 1.532779 1.469359 0.154947 0.378163
d -0.887786 -1.980796 -0.347912 0.156349
e 1.230291 1.202380 -0.387327 -0.302303
Day3 a -1.048553 -1.420018 -1.706270 1.950775
b -0.509652 -0.438074 -1.252795 0.777490
c -1.613898 -0.212740 -0.895467 0.386902
d -0.510805 -1.180632 -0.028182 0.428332
e 0.066517 0.302472 -0.634322 -0.362741
"""
Ниже приведен вывод этого примера с полями, которые мне нужно масштабировать между: 1 и 1
Нет, индексы не помечены.
Я не очень знаком с группой pandas но это может быть то, что нужно использовать. Я открыт для любого метода или предложения.