回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我想在<code>DataFrame</code>中添加一列,根据此人是否在激励之前或之后被阻止。在</p>
<p>例如,在<code>row 0</code>中,此人在<code>IncentiveStart</code>日期之后<code>Blocked</code>,因此<code>1</code>会出现在那里,这样在结束时我可以计算每一次。同样,如果一个人在激励之后<code>Cleared</code>,那么<code>1</code>将进入相应的单元格。在</p>
<p>我想不出用Pandas做这个,因为我能想到的唯一方法是使用<code>if</code>语句。如果有帮助,<code>columns = ReceiptDate, IncentiveStart</code>是<code>DateTime</code>对象。在</p>
<p>提前谢谢。在</p>
<p>这是我的<code>DataFrame</code>,下面是我想要的样子:</p>
<pre><code> df = pd.DataFrame([['AMW','Blocked','5/22/2011','10/1/2015','TRUE'],
['AMW','Cleared','6/1/2011','','FALSE'],
['CRC','Cleared','6/1/2011','','FALSE'],
['BRO','Blocked','6/2/2016','10/1/2015','TRUE'],
['WOR','Cleared','5/12/2011','','FALSE'],
['BUR','Cleared','6/9/2015','10/1/2014','FALSE'],
['COM','Cleared','6/1/2011','','FALSE'],],
columns=['person','Clear_Decline','ReceiptDate',
'IncentiveStart','hasIncentive'])
person Clear_Decline ReceiptDate IncentiveStart hasIncentive
0 AMW Blocked 5/22/2011 10/1/2015 TRUE
1 AMW Cleared 6/1/2011 FALSE
2 CRC Cleared 6/1/2011 FALSE
3 BRO Blocked 6/2/2016 10/1/2015 TRUE
4 WOR Cleared 5/12/2011 FALSE
5 BUR Cleared 6/9/2015 10/1/2014 FALSE
6 COM Cleared 6/1/2011 FALSE
df = pd.DataFrame([['AMW','Blocked','5/22/2011','10/1/2015','TRUE',0,0,1,0],
['AMW','Cleared','6/1/2011','','FALSE',1,0,0,0],
['CRC','Cleared','6/1/2011','','FALSE',1,0,0,0],
['BRO','Blocked','6/2/2016','10/1/2015','TRUE',0,0,0,1],
['WOR','Cleared','5/12/2011','','FALSE',1,0,0,0],
['BUR','Cleared','6/9/2015','10/1/2014','FALSE',0,1,0,0],
['COM','Cleared','6/1/2011','','FALSE',1,0,0,0],],
columns=['person','Clear_Decline','ReceiptDate',
'IncentiveStart','hasIncentive',
'Clearedbefore','ClearedAfter','Blockedbefore','BlockedAfter'])
person Clear_Decline ReceiptDate IncentiveStart hasIncentive Clearedbefore ClearedAfter Blockedbefore BlockedAfter
0 AMW Blocked 5/22/2011 10/1/2015 TRUE 0 0 1 0
1 AMW Cleared 6/1/2011 FALSE 1 0 0 0
2 CRC Cleared 6/1/2011 FALSE 1 0 0 0
3 BRO Blocked 6/2/2016 10/1/2015 TRUE 0 0 0 1
4 WOR Cleared 5/12/2011 FALSE 1 0 0 0
5 BUR Cleared 6/9/2015 10/1/2014 FALSE 0 1 0 0
6 COM Cleared 6/1/2011 FALSE 1 0 0 0
</code></pre>