【问题标题】:Change 1st instance of every unique row as 1 in pandas在熊猫中将每个唯一行的第一个实例更改为 1
【发布时间】:2022-09-28 18:05:58
【问题描述】:

嗨,让我们假设我有一个数据框

      Name quantity
0      a    0
1      a    0
2      b    0
3      b    0
4      c    0

我想要类似的东西

   Name quantity
0      a    1
1      a    0
2      b    1
3      b    0
4      c    1

这本质上是我想用一个更改每个唯一元素的第一行

目前我正在使用如下代码:

def store_counter(df):
        unique_names = list(df.name.unique())
        df[\'quantity\'] = 0
        for i,j in df.iterrows():
            if j[\'name\'] in unique_outlets:
                df.loc[i, \'quantity\'] = 1
                unique_names.remove(j[\'name\'])
            else:
                pass
        return df

这是非常低效的。有没有更好的方法呢? 先感谢您。

    标签: pandas dataframe


    【解决方案1】:

    利用:

    df.loc[~df.Name.duplicated(), 'quantity'] = 1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-22
      • 1970-01-01
      • 2021-09-05
      • 2013-10-14
      相关资源
      最近更新 更多