python - 如何从列中删除浮点值 - 熊猫
问题描述
我有一个如下所示的数据框
df = pd.DataFrame({
'subject_id':[1,1,1,1,1,1],
'val' :[5,6.4,5.4,6,6,6]
})
如下图所示
我想values
删除val
以.[1-9]
. 基本上我想保留诸如 之类的值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
另一个想法是 test 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
推荐阅读
- iis - IIS 工作进程是否在高 CPU 或 RAM 上崩溃?
- c# - 如何使控件跟随其数据源?
- ios - Swift 4 insertTimeRange 添加视频轨道,但播放时不显示除了第一个
- go - 如何使用golang快速获取邮递员的表单数据?
- javascript - 返回函数的参数在哪里得到它的值?
- jqwidget - 如何在 jqxTreeGrid 中选中复选框并禁用
- r - R: 'height' 必须是向量或矩阵错误,大数据集借用脚本
- node.js - 在批量插入时,确保 checkid/promise 在下次调用之前解决
- python - Django 'TestForm' 对象没有属性 'fields'
- hyperledger-fabric - startFabric.sh 失败,找不到 docker compose 命令