免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6176 | 回复: 5
打印 上一主题 下一主题

求一个关于负数的正则表达式 [复制链接]

论坛徽章:
8
双鱼座
日期:2014-07-30 09:28:14辰龙
日期:2014-08-22 14:14:43水瓶座
日期:2014-12-02 15:36:392015年亚洲杯之朝鲜
日期:2015-02-06 09:28:592015亚冠之全北现代
日期:2015-09-10 14:40:18青铜圣斗士
日期:2015-11-18 09:22:56黄金圣斗士
日期:2015-11-26 09:17:2615-16赛季CBA联赛之新疆
日期:2016-08-15 17:00:22
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-11-12 21:19 |只看该作者 |倒序浏览
本帖最后由 20032007 于 2015-11-12 21:28 编辑

我的一个pandas的DataFrame中有很多列和行的数据:
  1. 12               12  a90-4     11.2    52.252  -9999.900   -999.999  -9999.9   
  2. 13               13  a90-4     11.3   -52.562  -1999        -999.999  -9999.9   
  3. 14               14  a90-5     11.4    52.895  -1999        -999.999  -9999.9   
  4. 15               15  b90-6    -11.5    52.903  -9900.900  -999.999  -9999.9   
  5. 16               16  b90-9    -11.6    53.489  -1999.900  -999.999  -9999.9   
  6. 17               17  x90-2     11.7    53.512  -9900.900  -999.999  -9999.9   
  7. 18               18  x90-1     11.8   -53.072  -1999.900  -999.999  -9999.9
复制代码
列与列之间是用空格分隔的,里边有正数也有负数,还有带横线的字符串,我想把小于-100的数据替换成-999.999

请问这个正则表达式应该怎么写?

我用
  1. df.replace('-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)','-999.999',inplace=True,regex=True)
复制代码
替换不成功。

论坛徽章:
0
2 [报告]
发表于 2015-11-13 13:31 |只看该作者
本帖最后由 remyzane 于 2015-11-13 13:31 编辑

既然用pandas了,还有用re的必要吗

建议楼主搞透pandas,别百度完了东拼西凑

评分

参与人数 1信誉积分 +5 收起 理由
20032007 + 5

查看全部评分

论坛徽章:
8
双鱼座
日期:2014-07-30 09:28:14辰龙
日期:2014-08-22 14:14:43水瓶座
日期:2014-12-02 15:36:392015年亚洲杯之朝鲜
日期:2015-02-06 09:28:592015亚冠之全北现代
日期:2015-09-10 14:40:18青铜圣斗士
日期:2015-11-18 09:22:56黄金圣斗士
日期:2015-11-26 09:17:2615-16赛季CBA联赛之新疆
日期:2016-08-15 17:00:22
3 [报告]
发表于 2015-11-13 16:02 |只看该作者
本帖最后由 20032007 于 2015-11-13 16:05 编辑
remyzane 发表于 2015-11-13 13:31
既然用pandas了,还有用re的必要吗

建议楼主搞透pandas,别百度完了东拼西凑


谢谢。。。。
真是太糊涂了。。。

df[df<-100]=-999.999
原来用R的时候经常这样用,这两天真是太糊涂了。。。

论坛徽章:
8
双鱼座
日期:2014-07-30 09:28:14辰龙
日期:2014-08-22 14:14:43水瓶座
日期:2014-12-02 15:36:392015年亚洲杯之朝鲜
日期:2015-02-06 09:28:592015亚冠之全北现代
日期:2015-09-10 14:40:18青铜圣斗士
日期:2015-11-18 09:22:56黄金圣斗士
日期:2015-11-26 09:17:2615-16赛季CBA联赛之新疆
日期:2016-08-15 17:00:22
4 [报告]
发表于 2015-11-13 23:27 |只看该作者
本帖最后由 20032007 于 2015-11-13 23:30 编辑

反应过来一点了

当初是把文件按str类型读入的,所以一直想到用正则。

如果dataframe里有的列是字符型,有的列是数值型,应该怎么替换?

论坛徽章:
4
白羊座
日期:2013-11-05 10:26:09冥斗士
日期:2015-11-17 14:19:55白银圣斗士
日期:2015-11-17 15:13:0815-16赛季CBA联赛之新疆
日期:2016-04-01 09:10:58
5 [报告]
发表于 2015-11-14 15:37 |只看该作者
dataframe本身支持数据转换。

论坛徽章:
8
双鱼座
日期:2014-07-30 09:28:14辰龙
日期:2014-08-22 14:14:43水瓶座
日期:2014-12-02 15:36:392015年亚洲杯之朝鲜
日期:2015-02-06 09:28:592015亚冠之全北现代
日期:2015-09-10 14:40:18青铜圣斗士
日期:2015-11-18 09:22:56黄金圣斗士
日期:2015-11-26 09:17:2615-16赛季CBA联赛之新疆
日期:2016-08-15 17:00:22
6 [报告]
发表于 2015-11-14 17:09 |只看该作者
本帖最后由 20032007 于 2015-11-14 17:09 编辑

http://stackoverflow.com/questio ... ata-type-of-columns

http://stackoverflow.com/questio ... frame-row-in-pandas

http://blog.sina.com.cn/s/blog_4c9dc2a10102vkil.html

df[['two', 'three']] = df[['two', 'three']].astype(float)

df.astype


先这样用着吧。。。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP