2014-01-30 69 views
0

有沒有辦法在for-loop中更改DataFrame?例如,而不是:在DataFrame上迭代

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