在修改值后重新分配Pandas列的切片



我需要在循环中执行以下操作:选择pandas数据框的一个切片,然后修改该切片的值(具体来说,是对数据进行winsorize),然后将修改后的值写回该切片。对此的最佳实践是什么?我尝试了几种方法,但结果列通常充满了nan。

for value in list_values:
temp_df = df.loc[df["Column_a" == value]]
transformed_data = pd.Series(mstats.winsorize(temp_df["Column_b"], limits=[0.05, 0.05])
df.loc[df["Column_a" == value, "Column_b]] = transformed_data

任何帮助都非常感激。谢谢!

我认为pandas.DataFrame.combine_first或pandas.DataFrame.update应该可以解决这个问题。这里有一些例子https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html

最新更新