在数据范围内迭代



有没有办法在循环中更改数据框?例如,而不是:

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

类似:

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

在此版本中,原始数据框未更改。我该如何使用循环?

在以下行中,删除 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

最新更新