【发布时间】:2017-05-26 20:56:15
【问题描述】:
我想做如下的事情:
df['Day'] = df['Day'].apply(lambda x: x + myDict[df['Month']]),
在哪里
myDict={2:3,4:1,6:1,9:1,11:1,1:0,3:0,5:0,7:0,8:0,10:0,12:0}.
如果是某个月份,我正在做的是在该月的某天添加天数。例如:如果是 2 月,当月的日期是 28,我加 3 得到 31。
但这不起作用,因为我真的想将 myDict 应用于 df['Month'] 的索引,而不是直接应用于 Month 列。
我可以为我的命令做 iterrows inline 吗?我认为这通过 pandas 比遍历整个数据帧的大 for 循环执行得更快。
【问题讨论】:
-
你能展示一个你的DataFrame的例子吗?
-
我可以告诉你里面有什么,但我不能显示客户数据。我有月份,无论是工作日/周末,一个月中的哪一天,哪个产品,什么部门,花费的金额等。它是字符串和整数。如果您需要更多信息,请告诉我。
-
我试图弄清楚 indexes of df['Month'] 在您的问题中的含义。这样的索引是什么样的?
-
@piRsquared 刚刚回答了这个问题。他说使用 df.Day += df.Month.map(myDict)。而 Month 是一个从 1 到 12 的整数。
-
他根据您问题中的“索引”行更改了答案。哪一个是正确的?
标签: python pandas dictionary lambda