2024-04-28 03:44:27 发布
网友
我有一个数据帧如下所示
df = pd.DataFrame({ 'subject_id':[1,1,1,1,1,1], 'val' :[5,6.4,5.4,6,6,6] })
如下所示
我想删除values中以.[1-9]结尾的values列。基本上,我希望保留5.0、6.0等值,并删除5.4、6.4等值
values
.[1-9]
5.0
6.0
5.4
6.4
虽然我在下面试过了,但并不准确
我希望我的输出如下所示
使用mod 1确定残差。如果残差为0,则表示数字是整数。然后使用结果作为掩码,只选择那些行。在
df.loc[df.val.mod(1).eq(0)].astype(int) subject_id val 0 1 5 3 1 6 4 1 6 5 1 6
第一个想法是将原始值与casted column进行比较,同时为预期输出分配整数(列中的整数):
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:
is_integer
如果需要在输出中使用浮动,可以使用:
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
使用mod 1确定残差。如果残差为0,则表示数字是整数。然后使用结果作为掩码,只选择那些行。在
第一个想法是将原始值与casted column进行比较,同时为预期输出分配整数(列中的整数):
另一个想法是测试
^{pr2}$is_integer
:如果需要在输出中使用浮动,可以使用:
相关问题 更多 >
编程相关推荐