Установите значения от x до x, а значения от -x до -x - PullRequest
0 голосов
/ 01 июня 2018

Я пытался, но не могу понять это.Я должен изменить все данные, которые больше чем 3 к 3, и меньше чем от -3 до -3 в кадре данных ниже.

np.random.seed(42)
randomdata = DataFrame(np.random.randn(400, 4))

Я пробовал циклы, .loc, .where, и, похоже, ничего не работает.

Ответы [ 2 ]

0 голосов
/ 01 июня 2018
# Creating a data frame with 4 variables and 400 observations
np.random.seed(42)
randomdata = pd.DataFrame(np.random.randn(400, 4))
randomdata.head()

        0           1           2          3
0    0.496714   -0.138264    0.647689    1.523030
1   -0.234153   -0.234137    1.579213    0.767435
2   -0.469474    0.542560   -0.463418   -0.465730
3    0.241962   -1.913280   -1.724918   -0.562288
4   -1.012831    0.314247   -0.908024   -1.412304

# Cap and floor for one variable
randomdata[0].clip(lower=-0.5, upper=0.5)

# Cap and floor entire dataframe
clean_df = randomdata.clip(lower=-0.5, upper=0.5)
clean_df.head()

       0            1           2          3
0    0.496714   -0.138264    0.500000    0.50000
1   -0.234153   -0.234137    0.500000    0.50000
2   -0.469474    0.500000   -0.463418   -0.46573
3    0.241962   -0.500000   -0.500000   -0.50000
4   -0.500000    0.314247   -0.500000   -0.50000
0 голосов
/ 01 июня 2018

редактировать: для панды панды имеют DataFrame.clip .

см. numpy.clip.

import numpy as np

thing = np.arange(-5, 6)  # [-5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5]

clipped_thing = np.clip(thing, -3, 3)

print(clipped_thing)

выходы

[-3 -3 -3 -2 -1  0  1  2  3  3  3]
...