首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用REGEX有效地转换所有不等于0的值

如何使用REGEX有效地转换所有不等于0的值
EN

Stack Overflow用户
提问于 2019-12-19 01:40:06
回答 2查看 31关注 0票数 0

我有一个包含0 and 12/02/19日期的列,我希望将所有日期转换为1并乘以列Enrolls_F

-

我更喜欢使用REGEX,但任何其他选项也应该可以,它是一个大型数据集,我尝试使用简单的for循环,但我的内核无法运行它。

-

数据:

代码语言:javascript
运行
复制
df = pd.DataFrame({ 'Enrolled_Date': ['0','2019/02/04','0','0','2019/02/04','0'] , 'Enrolls_F': ['1.11','1.11','0.222','1.11','5.22','1']  }) 

尝试:

尝试搜索所有内容,从2开始,替换为1,再乘以Enrolls_F

代码语言:javascript
运行
复制
df_test =  (df.replace({'Enrolled_Date': r'2.$'}, {'Enrolled_Date': '1'}, regex=True)) * df.Enrolls_F

# Nothing happens 
EN

Stack Overflow用户

回答已采纳

发布于 2019-12-19 02:04:02

IIUC,这应该可以帮助你解决问题;

代码语言:javascript
运行
复制
import pandas as pd
import numpy as np
df = pd.DataFrame({ 'Enrolled_Date': ['0','2019/02/04','0','0','2019/02/04','0'] , 'Enrolls_F': ['1.11','1.11','0.222','1.11','5.22','1']  }) 
df['Enrolled_Date'] = np.where(df['Enrolled_Date'] == '0',0,1)
df['multiplication_column'] = df['Enrolled_Date'] * df['Enrolls_F']
print(df)

输出:

代码语言:javascript
运行
复制
   Enrolled_Date Enrolls_F multiplication_column
0              0      1.11
1              1      1.11                  1.11
2              0     0.222
3              0      1.11
4              1      5.22                  5.22
5              0         1
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59397463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档