有没有办法在循环中更改数据框?例如,而不是:
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