【问题标题】:Why the pandas replace won't work in a df slice? [duplicate]为什么熊猫替换在 df 切片中不起作用? [复制]
【发布时间】:2019-04-24 16:36:11
【问题描述】:

我有一个这样的数据框:

| action   | spans | product_id     | created_at      |
|----------|-------|----------------|-----------------|
| sign_in  | 0     | 2201           | 2019/3/10 12:11 |
| order    | 0     | 449            | 2019/4/13 14:58 |

还有product = {'2201': 'project a'}的字典

我想将product_id 替换为 dict 产品的值,其中操作为 sign_in。

但是代码

df[df['action']=='sign_in']]['product_id'].replace(product, inplace=True)

不起作用。

谁能帮忙解释一下?谢谢。

【问题讨论】:

  • slice with replace inplace 将不起作用,请尝试使用 assign df.loc[df['action']=='sign_in','product_id']=df.loc[df['action']=='sign_in','product_id'].replace{product)
  • 这可能是你的答案:stackoverflow.com/a/48315104/7838574看最后一个答案

标签: python pandas


【解决方案1】:

我不知道为什么inplace=True 不适用于蒙版的 DF,但您可以通过以下方式实现相同的效果(也许更好阅读):

df.update(df.loc[df['action']=='sign_in','product_id'].replace(product))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 2015-05-12
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 2018-12-17
    相关资源
    最近更新 更多