【问题标题】:Replacing the corresponding column values in Python Pandas dataframe替换 Python Pandas 数据框中的相应列值
【发布时间】:2020-10-27 15:00:47
【问题描述】:

我有一个数据框,比如说:

  Name  Visits
0 Z      0
1 A      0
2 B      1
3 C      1
4 D      0
5 E      0

现在,我列出了访问次数为 0 的名字,所以它有 Z、A、D 和 E。现在,我从这 4 个名字中随机选择 2 个。然后,我想增加这些的访问次数2 人 1。我如何仅引用这 2 个名称,访问他们的相应访问并更改它? [在 python 中,熊猫] 谢谢!

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    这是一个可行的解决方案:

    df.visit[df.visit == 0] += 1
    

    【讨论】:

      【解决方案2】:

      如果你已经有谁访问过 0 次的列表,你可以使用 pd.Series.isin 为布尔索引创建一个布尔掩码,然后将相应的值增加 1

      vals = ['Z', 'A', 'D', 'E']
      m = df['Name'].isin(vals)
      df.loc[m, 'Visits']+=1
      # This only increases Z, A, D, E visits by 1
      

      【讨论】:

      • 这对我有用,非常感谢!我刚刚用包含 2 个名字的随机列表替换了 vals,它就像一个魅力,非常感谢!!
      • 很高兴为您提供帮助。看看 BEN 的答案比我的 TBH 好得多;)
      • 有什么方法可以联系你@Ch3esteR 大声笑,请不要拒绝?
      • @YamiKanashi 是的,通过 StackOverflow 聊天确定。
      【解决方案3】:

      从号码尝试random.choice,然后通过index赋值

      df.loc[np.random.choice(df.index[df.Visits==0],2),'Visits'] += 1
      df
      Out[95]: 
        Name  Visits
      0    Z       1
      1    A       0
      2    B       1
      3    C       1
      4    D       0
      5    E       0
      

      【讨论】:

      • 已编辑答案,因为 OP 想要增加 1。如果不好,请随意还原更改。
      猜你喜欢
      • 2018-09-29
      • 1970-01-01
      • 2017-08-03
      • 2021-09-07
      • 1970-01-01
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多