【发布时间】:2019-05-29 13:35:10
【问题描述】:
我正在尝试将 R 代码转换为 Python 代码并停留在这一点上。你能告诉我在 Python 中实现这段代码 sn-p 的最佳方法是什么吗?
only0_0$count =0
for(i in 2:length(only0_0$ID))
{
only0_0$count[i]=ifelse((only0_0$year[i]-1) %in%
clientData$Year[clientData$CUSTOMERID %in% only0_0$ID[i]],1,0)
}
背景:
- clientData 和 only0_0 都是 DataFrame。
- 客户数据{列:年份、客户 ID、...}
- only0_0 {列:年份,ID}
- ID 和 CustomerID 都代表同一个东西,在对应的表中不是唯一的。
- 仅按 {'ID','year'} 排序 0_0
伪代码:
- 在 only0_0 中,创建新列 'count' 将全为零。
-
for 循环从第二次观察到最后一次,将“count”变量填充为:
- 从 clientData 中选择所有“CustomerID”,其中“ID” in only0_0 与特定行匹配。
- 例如only0_0.ID == 3197
- clientData.CustomerID 将返回 customerID=3197 的所有行 ID
- 例如最后一步的输出:rowid(或 Python 中的索引){3,11,81,87}
- 从上一步返回的行 id 中提取相应的年份值
例如最后一步的输出:{2006, 2008, 2009, 2006}
假设:(only0_0.year - 1) == 2008 年的输出
- 因为 2008 在 {2006, 2008, 2009, 2006},count = 1
如果现在清楚,请告诉我。
【问题讨论】:
-
你能把它变成伪代码或粗略的C代码吗? (不需要运行)给你一个简短的python解决方案很容易,但如果没有经验,很难阅读
r到这种程度。 -
添加了伪代码。如果有帮助,请告诉我。
-
你能提供一个示例表(输入和输出)吗(一些更用户友好的变量名称会很有用,但我可以通过输入和输出表来解决)。
-
也添加了示例。
标签: python r python-3.x