pandas - 根据条件创建新列并从其他列中提取相应的值。熊猫数据框
问题描述
我对这个领域比较陌生,并且正在使用数据集来寻找对客户行为的有意义的见解。我的dataset
样子:
customerId 周 first_trip_week 乘车次数 0 156 44 36 2 1 164 44 38 6 2 224 42 36 5 3 224 43 36 4 4 224 44 36 5
我想要做的是创建新列week 44
,并获取“ride”列week 43
中week 42
的值以填充到相应客户 ID 的行中。这是希望我最终也可以制作customerId
我的索引,并可以获得不同周的面额。帮助将不胜感激!
谢谢!!
解决方案
如果我对您的理解正确,您希望在第 44 周、第 43 周和第 42 周的同一数据框中创建新列,并为没有它的每个 customerId 和 NaN 提供正确的值。如果您的原始数据框包含所有用户数据,我将首先过滤具有正确周数的数据框
week42DF = dataset.loc[dataset['week']==42,['customerId','rides']].rename(columns={'rides':'week42Rides'})
仅获取游乐设施和 customerId 并在此处重命名前者,以使我们更轻松。然后在 customerId 上加入旧数据框和新数据框
dataset = pd.merge(dataset,week42DF,how='left',on='customerId')
week42DF 中缺少的用户将在合并数据集中的 week42rides 列中具有 NaN,然后您可以使用 .fillna(0) 方法将其替换为零。为您需要的每周执行此操作。
推荐阅读
- sql - 阶乘之和
- python - 如何设计 Python 代码以方便第三方的插件/定制
- java - 为什么这个 GUI 应用程序不显示图像?
- excel - 具有相同结果的第二、第三最佳值(VLOOKUP、MATCH...)
- javascript - 使用 CodeMirror 简单模式“覆盖”多个标记/规则/样式的方法?
- javascript - 使用 react-select V2 进行正确的组件样式组合
- 3d - 检测 3D 网格上的水平和垂直表面
- spring-boot - 无法将“服务器”下的属性绑定到 org.springframework.boot.autoconfigure.web.ServerProperties:
- javascript - 在 Node.js ES6 中使用 eval 创建变量失败
- swift4.1 - 如何以编程方式浏览按钮