大佬教程收集整理的这篇文章主要介绍了如何使用熊猫识别字符串数据中的浮点数/数字,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个如下所示的数据框
df = pd.DataFrame({'val': ['test','depat','23.1','25.0','31',np.nan]})
我想创建两个新列 val_num
和 val_String
在 val_num 中,我想存储数字/整数值
在 val_String 中,我想存储字符串值
所以,我尝试了以下
df['val_num'] = pd.to_numeric(df['val'],errors='coerce')
df['val_String'] = (df[pd.to_numeric(df['val'],errors='coerce').isna()])
虽然上面的方法工作正常,但有没有像 to_numeric
这样优雅的函数来使用 to_String
识别字符串对象?
是否有像 to_numeric 这样优雅的函数来使用 to_String 识别字符串对象
不,它还不存在。
如果值混合 - 这意味着可以使用 isinstance
方法进行测试:
df = pd.DataFrame({'val': ['test','depat',23.1,25.0,31,np.nan]})
df['num'] = df.loc[df['val'].apply(lambda x: isinstance(x,(float,int))),'val']
df['str'] = df.loc[df['val'].apply(lambda x: isinstance(x,str)),'val']
print (df)
val num str
0 test NaN test
1 depat NaN depat
2 23.1 23.1 NaN
3 25.0 25.0 NaN
4 31 31 NaN
5 NaN NaN NaN
不幸的是,在现实生活中所有数据都是字符串,因此需要您的解决方案 - 首先转换为数字然后处理:
df = pd.DataFrame({'val': ['test','23.1','25.0','31',float)),'val']
print (df)
val num str
0 test NaN test
1 depat NaN depat
2 23.1 NaN 23.1
3 25.0 NaN 25.0
4 31 NaN 31
5 NaN NaN NaN
df['num'] = pd.to_numeric(df['val'],errors='coerce')
df['vString'] = df.loc[df['num'].isna(),'val']
print (df)
val num vString
0 test NaN test
1 depat NaN depat
2 23.1 23.1 NaN
3 25.0 25.0 NaN
4 31 31.0 NaN
5 NaN NaN NaN
以上是大佬教程为你收集整理的如何使用熊猫识别字符串数据中的浮点数/数字全部内容,希望文章能够帮你解决如何使用熊猫识别字符串数据中的浮点数/数字所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。