python - 有没有更快的方法来运行基于 pandas 应用函数的代码?
问题描述
我正在运行此代码以df
根据其他列的条件和值创建熊猫数据框的新列:
df['C'] = df.apply(lambda x: label_dict[int(x['A'])]
if x['B']==1 else
label_dict[int(x['A'])] + 1,
axis =1 )
label_dict
例如,只有几个术语(实际上更大):
label_dict = {1: 10, 2: 24, 3: 55}
代码df['C]
在 10^5 行上需要几秒钟(大约 3)。有没有更好更快的写法?
解决方案
加快速度numpy
where
s=df.A.astype(int).map(label_dict)
df['C']=np.where(df.B==1,s,s+1)
推荐阅读
- javascript - 仅当用户在 twilio 中输入录制按钮时才在房间中录制视频通话
- ruby - 无法加载此类文件 -- whois/server/adapters/verisign
- mysql - Laravel 查询以获取列上的不同值,但在使用 orderby 获取最新的不同值之后
- javascript - 如何在 randgen 中使用 if 语句
- sql - 将在线 JSON 文件集转换为关系数据库(SQL Server、MySQL、SQLITE)
- mysql - Bigquery:有没有办法将时间戳向上或向下舍入到最近的分钟?
- node.js - 将 Node.js 服务器与 Webpack 捆绑时找不到 index.html
- machine-learning - azure ML 如何为训练模型时未使用的值提供输出?
- ios - 使用 swift 搜索其余 api 响应结果
- javascript - 我在 PHP 中处理这些变量的方式有什么问题?