有没有一种方法可以执行一次 df.loc 查找,然后对行子集执行多个操作?
这就是动机。我有 2 个数据框,其中包含相同用户的数据。我正在循环 df_2.groupby('user_id')
然后查找其他数据帧以分配一些值:
for user, user_df in df_2.groupby('user_id'):
df_1.loc[df_1.user_id == user, 'value_1'] == user_df.value_1.mean()
df_1.loc[df_1.user_id == user, 'value_2'] == user_df.value_2.min()
我可以以某种方式组合这些来只执行一个 df.loc,但同时分配两个值吗?
最佳答案
您可以对齐索引,然后使用就地 pd.DataFrame.update
:
df_1 = df_1.set_index('user_id')
df_1.update(df_2.groupby('user_id')[['value_1', 'value_2']].mean())
请注意,这也消除了对 Python 级 for
循环的需要。
关于python - Pandas - 组合 df.loc 进行多项操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52819672/