【发布时间】:2022-01-12 13:21:15
【问题描述】:
我有一个如下所示的数据框
df=pd.DataFrame({'subjects':['A','A','D','B','B','C'],
'B':['12','12','13','14','14','16'],
'C':[21,23,24,25,26,27]
})
df['r_no'] = df.groupby(['subjects','B']).cumcount()+1
现在,我只想选择只有r_no = 1(而不是 r_no > 1)的行。
我尝试了以下
df[df['subjects'].value_counts() == 1]
df.iloc[df['subjects'].value_counts() == 1:,]
df.ix[df['subjects'].value_counts() == 1:,]
df[(df['r_no'] == 1) & (df['r_no'] < 2)]
它们都不起作用。
我希望我的输出如下所示。
您可以看到subjects = A 和subjects = B 被排除在外,因为它们也有r_no > 1 的行。基本上,我想在数据框中选择只有一条记录的主题(r_no)
【问题讨论】:
-
@wwnde 不行,这样会导致输出不正确
标签: python pandas dataframe numpy filter