我有一个熊猫数据框
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列