【发布时间】:2020-01-29 16:15:56
【问题描述】:
我不明白为什么下面的代码不起作用:
df_sensor.loc[(df_sensor.user_id == labels_user_id) & (df_sensor.exp_id == labels_exp_id),'activity_id'].iloc[start:end] = labels['activity_id'][I]
这一行
df_sensor.loc[(df_sensor.user_id == labels_user_id) & (df_sensor.exp_id == labels_exp_id),'activity_id'].iloc[start:end]
返回这个数据框
我想从特定索引(开始和结束)更改 user_id 和 exp_id 的值
编辑
我有 2 个数据框
1: Dataframe 1
2: Dataframe 2
我想将 DF1 的 activity_id 从 DF2.activity_id 更改为 start 和 end 作为索引
【问题讨论】:
-
您使用的是链式赋值
.loc[].iloc[] =,所以虽然这不是典型的][链式问题,但结果仍然是您永远不会更改DataFrame。您能否提供更多信息,例如您的索引是否重复,或者一些示例数据?有几种方法可以处理这种更复杂的选择。 -
感谢您的回复!我刚刚编辑了问题
-
我提供了一个答案来说明问题,并且应该让您通过一些非常小的替换来解决它。 IE。你会使用
m = (df_sensor.user_id == labels_user_id) & (df_sensor.exp_id == labels_exp_id)和'activity_id'而不是'name'。 -
除非绝对必要,否则请不要将信息共享为图像,此处并非如此。
标签: python pandas dataframe anaconda