首页 > 解决方案 > 根据条件创建新列并从其他列中提取相应的值。熊猫数据框

问题描述

我对这个领域比较陌生,并且正在使用数据集来寻找对客户行为的有意义的见解。我的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 43week 42的值以填充到相应客户 ID 的行中。这是希望我最终也可以制作customerId我的索引,并可以获得不同周的面额。帮助将不胜感激!

谢谢!!

标签: pandas

解决方案


如果我对您的理解正确,您希望在第 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) 方法将其替换为零。为您需要的每周执行此操作。

有关更多信息,请参阅 Pandas 的合并文档和更通用的连接


推荐阅读