我有一个如下所示的数据帧
df = pd.DataFrame({ 'subject_id':[1,1,1,1,1,1], 'val' :[5,6.4,5.4,6,6,6] }) 我想保留值5.0,6.0删除值5.4,6.4等
虽然我在下面试过,但这不准确
df['val'] = df['val'].astype(int) df.drop_duplicates() # it doesn't give expected output and not accurate.
第一个想法是将原始值与已转换列与整数进行比较,还将整数分配给预期输出(列中的整数):
s = df['val'] df['val'] = df['val'].astype(int)
df = df[df['val'] == s] print (df) subject_id val 0 1 5 3 1 6 4 1 6 5 1 6 另一个想法是测试is_integer:
mask = df['val'].apply(lambda x: x.is_integer()) df['val'] = df['val'].astype(int)
df = df[mask] print (df)
subject_id val 0 1 5 3 1 6 4 1 6 5 1 6 如果需要在输出中浮动,您可以使用:
df1 = df[ df['val'].astype(int) == df['val']] print (df1) subject_id val 0 1 5.0 3 1 6.0 4 1 6.0 5 1 6.0
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。