显示不以“.0”Python Pandas结尾的值

显示不以“.0”Python Pandas结尾的值,第1张

概述我有一个包含NaN值和浮点值的浮点列.如何过滤掉那些不以.0结尾的值? 例如: Col10.71.01.19.09.5NaN 欲望结果将是: Col10.71.1 9.2 你可以使用 boolean indexing: #convert to string and compare last valueprint ((df.Col1.astype(str).str[-1] != 我有一个包含NaN值和浮点值的浮点列.如何过滤掉那些不以.0结尾的值?

例如:

Col10.71.01.19.09.5NaN

欲望结果将是:

Col10.71.1 9.2
解决方法 你可以使用 boolean indexing

#convert to string and compare last valueprint ((df.Col1.astype(str).str[-1] != '0') & (df.Col1.notnull()))0     True1    False2     True3    False4     True5    Falsename: Col1,dtype: boolprint (df[(df.Col1.astype(str).str[-1] != '0') & (df.Col1.notnull())])   Col10   0.72   1.14   9.5

将转换后的值与“¯nt”进行比较的另一种解决方案,但首先需要fillna

s = df.Col1.fillna(1)print (df[s.astype(int) != s])   Col10   0.72   1.14   9.5

时序:

#[30000 rows x 1 columns]df = pd.concat([df]*10000).reset_index(drop=True)def jez2(df):    s = df.Col1.fillna(1)    return (df[s.astype(int) != s])In [179]: %timeit (df[(df.Col1.astype(str).str[-1] != '0') & (df.Col1.notnull())])10 loops,best of 3: 80.2 ms per loopIn [180]: %timeit (jez2(df))1000 loops,best of 3: 1.16 ms per loopIn [181]: %timeit (df[df.Col1 // 1 != df.Col1].dropna())100 loops,best of 3: 3.04 ms per loopIn [182]: %timeit (df[df['Col1'].mod(1) > 0].dropna())100 loops,best of 3: 2.58 ms per loop
总结

以上是内存溢出为你收集整理的显示不以“.0”Python Pandas结尾的值全部内容,希望文章能够帮你解决显示不以“.0”Python Pandas结尾的值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1193749.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存