免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5128 | 回复: 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
发表于 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
发表于 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
发表于 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
发表于 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
发表于 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
发表于 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


先这样用着吧。。。

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

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,8.5折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时8.5折扣期:2019年9月30日前


----------------------------------------

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP