python - 使用 pd.Dataframe.replace 和 apply 函数作为替换值
问题描述
我有几个数据框在某些列中混合了这种 ASP.NET 格式“/Date(1239018869048)/”的日期。我已经想出了如何将其解析为给定列的 python 日期时间格式。但是,我想将此逻辑放入一个函数中,以便我可以将任何数据帧传递给它,并让它使用 pd.Dataframe.replace 替换它找到的与正则表达式匹配的所有日期。
就像是:
def pretty_dates():
#Messy logic here
df.replace(to_replace=r'\/Date(d+)', value=pretty_dates(df), regex=True)
问题在于传递给 pretty_dates 的 df 是整个数据框,而不仅仅是需要替换的单元格。
因此,我试图弄清楚的概念是,是否有一种方法可以使使用 df.replace 时应该替换的值可以是函数而不是静态值。
非常感谢你提前
编辑 为了增加一些清晰度,我在数据框中有很多列,超过一百个包含这种日期格式。我不想列出每个有日期的列。有没有办法在我的数据集中的所有列中应用清理我的日期的函数?所以我不想清理 1 列,而是我的数据框的所有数百列。
解决方案
我确定您可以使用正则表达式一步完成此操作,但这里是如何一次将其应用于整个列:
df = pd.Series(['/Date(1239018869048)/',
'/Date(1239018869048)/'],dtype=str)
df = df.str.replace('\/Date\(', '')
df = df.str.replace('\)\/', '')
print(df)
0 1239018869048
1 1239018869048
dtype: object
推荐阅读
- java - Java 画图组件
- linux - 查找:列出日期和大小而不使用 -printf
- callback - 使用 Ecto 在插入前查询记录(类似于 AR 回调)
- java - 使用制表符和换行符解析路径的正则表达式模式?
- excel - 如何按升序将数据插入vba excel中的数组?
- python - os.path AttributeError:“str”对象没有属性“存在”
- javascript - React useReducer Hook 触发两次/如何将道具传递给减速器?
- r - 如何在 levelplot 上添加徽标?
- c# - Ninject 绑定通用接口
- powershell - Powershell 脚本压缩存档部分失败