2014-01-30 7 views
0

Есть ли способ изменить DataFrame в for-loop? Например, вместо:Итерация по DataFrames

df_train[df_train > 1] = 1 
df_test[df_test > 1] = 1 

что-то вроде:

for frame in [df_train, df_test]: 
    frame = frame[frame > 1] = 1 

В этой версии оригинальные DataFrames не изменяются. Как я могу добиться этого с помощью цикла for?

ответ

3

В следующей строке, удалить frame =:

frame = frame[frame > 1] = 1 
#^^^^^^^ 

>>> import pandas as pd 
>>> 
>>> df_train = pd.DataFrame([0.1, 0.2, 3], columns=['a']) 
>>> df_test = pd.DataFrame([0.1, 5, 0.3], columns=['a']) 
>>> df_train[df_train > 1] = 1 
>>> df_test[df_test > 1] = 1 
>>> for frame in [df_train, df_test]: 
...  frame[frame > 1] = 1 
... 
>>> df_train 
    a 
0 0.1 
1 0.2 
2 1.0 
>>> df_test 
    a 
0 0.1 
1 1.0 
2 0.3 
Смежные вопросы