我有以下dataframe,在列中有某些值:ID'repeating。 我想按数据场分组
df = pd.DataFrame(
{'Score': [0.65, 0.57, 0.56, 0.689, 0.56, 0.85, 0.45, 0.15, 0.14, 0.4678],
'ID': ['AAA', 'BBB', 'SAS', 'SAP', 'TCS', 'BBB', 'CTC', 'CTC', 'CTC', 'CTC'],
'Sample': ['AE01', 'AE01', 'AE03', 'AE03', 'AE03', 'AE05', 'AE05', 'AE05', 'AE05', 'AE05'],
'Freq': [1, 14, 14, 15, 16, 17, 18, 19, 20, 21],
'Type': ['Non', 'IND', 'IND', 'IND', 'IND', 'IND', 'IND', 'IND', 'IND', 'IND']},
columns=['Sample','ID','Type','Score','Freq'])
当我试图向groupby选项添加'Re'列时,通过使用transform
跟随一行代码,将其分配给原始数据帧df
df['Re']=df.drop_duplicates(['Sample','ID']).groupby(['ID']).transform(size)
我有以下错误
ValueError: Wrong number of items passed 4, placement implies 1
我知道我可以做merge来获得由结果分配给组的原始数据帧,但是当我做merge时,我会得到某些行,它们在原始df中重复多次,这是我不需要的。任何更好的解决方案都会很好。 谢谢
我认为您需要首先分配给} 删除了一些重复的行(如果存在),所以不能将新列
drop_duplicates
的新DataFrame
输出,因为显然^{Re
分配给原始的df
。你知道吗另一个问题是groupby需要将
Series
添加到[]
,因为transform
只处理Series
。如果使用size
,您可以使用一些不用于分组的列,这里是ID
。你知道吗如果不赋值,则获取
NaN
:相关问题 更多 >
编程相关推荐