开发者社区> 问答> 正文

如何从列中删除浮点值 - pandas

我有一个如下所示的数据帧

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.

展开
收起
游客6qcs5bpxssri2 2019-09-02 14:17:41 742 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    第一个想法是将原始值与已转换列与整数进行比较,还将整数分配给预期输出(列中的整数):

    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

    2019-09-02 14:18:32
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载