创建一个基于列值的新列和熊猫中另一列的计数?

时间:2020-01-19 23:44:40

标签: python pandas

我有一个熊猫数据框

df = pd.DataFrame({'Birds': ['Falcon','Falcon','Parrot','Peacock','Peacock'],
                   'Name': ['A', 'D', 'B', 'C', 'C']})

我需要创建一个新列

df = pd.DataFrame({'Birds': ['Falcon','Falcon','Parrot','Peacock','Peacock'],
                   'Name': ['A', 'D', 'B', 'C', 'C']
                   'Count':['1','1','0','0','0'] })

Falcon有两个名称,因此给定的每条记录1,鹦鹉和孔雀只有一个名称,鹦鹉的名称为B,孔雀的名称为C,因此新列的名称为0。

我尝试使用groupby

df.groupby(['Birds','Name']).size()

这将返回

Birds    Name
Falcon   A        1
         D        1
Parrot   B        1
Peacock  C        2
dtype: int64

不确定如何转换

另一种方法,子集并删除重复项

df2 = df.drop_duplicates(subset=['Birds', 'Name'], keep='first')
df2['Birds'].value_counts()

这将返回

Falcon     2
Peacock    1
Parrot     1
Name: Birds, dtype: int64

不确定如何使用它来创建原始的1和0列

0 个答案:

没有答案