Python datatable如何对多列执行apply+lambda操作,对标R与pandas实现
Python datatable多列应用函数(apply+lambda实现方案)
以下是和你给出的R data.table、pandas示例效果完全对等的实现代码:
# 导入依赖 import datatable as dt import pandas as pd # 构造测试数据 df = dt.Frame({ 'col_1': ['2021-12-01'], 'col_2': ['2021-12-02'], 'col_3': ['foobar'] }) # 指定要应用函数的列 x = ['col_1', 'col_2'] # 核心逻辑:用apply+lambda批量对指定列做日期转换 df[:, x] = df[:, x].apply(lambda col: pd.to_datetime(col.to_list(), format='%Y-%m-%d'))
用法说明
- datatable的
apply方法默认按列迭代,每次传入lambda的col是对应单列的Frame对象,需要先通过to_list()/to_numpy()转成可迭代结构才能传入pandas函数处理 - 如果要替换为其他转换逻辑,直接修改lambda内部的处理代码即可,完全满足你要求必须使用
apply和lambda的限制 - 你可以通过
print(df.stypes)验证转换结果,执行后col_1、col_2会变为datetime类型,col_3保持原字符串类型不变
内容的提问来源于stack exchange,提问作者Sweepy Dodo
相关产品推荐
相关产品推荐

