【发布时间】:2021-10-06 22:46:07
【问题描述】:
这与Removing space from columns in pandas 密切相关,所以我不确定是否将其添加到对此的评论中......
我的问题的不同之处在于使用 loc 定位器来切出一个子集......
df['py'] = df['py'].str.replace(' ','')
-- 这很好用;但是当我只想将它应用于列子集为“foo”的行子集时:
df.loc[df['column'] == 'foo']['py'] = df.loc[df['column'] == 'foo']['py'].str.replace(' ','')
...不起作用。
我做错了什么?我总是可以切出组并重新附加它,但很好奇我在哪里出错了。
用于试验的数据集:
df = pd.DataFrame({'column':['foo','foo','bar','bar'], 'py':['a b','a b','a b','a b']})
谢谢
【问题讨论】:
-
您应该会收到一个巨大的红色警告,说明该问题已链接到 assignment
][。您需要使用df.loc[df['column'] == 'foo', 'py'] =正确分配(因为在 RHS 上您只是 选择,因此链接是 okay 并且不会引起问题,但对于最佳实践,只需选择也可以在一个地方调用)