【发布时间】:2015-07-31 09:07:18
【问题描述】:
我有一个这种格式的熊猫DataFrame
User_id|2014-01|2014-02|2014-03|2014-04|2014-05|...|2014-12
1 | 7 | NaN | NaN | NaN | NaN |...| NaN
2 | NaN | 5 | NaN | NaN | 9 |...| NaN
3 | 2 | 4 | NaN | NaN | NaN |...| NaN
换句话说,列是月份,索引是user_id,每个单元格包含一个整数,即NaN
数字代表已采取的行动,如果在3 个月之后的行动被认为是成功的,不需要其他行动。
我的目标是找到成功操作的列表
在 Excel 中,我会写一个这样的公式:
Sheet2!E5=AND(Sheet1!E5<>"NaN",Sheet1!D5="NaN",Sheet1!C5="NaN",Sheet1!B5="NaN")
然后将它拖到其余的列中,然后我会有一个动作是否成功的指示器。
如何使用 pandas 有效地做到这一点?
示例输出:
对于上面给出的示例,所需的输出应该是:
User_id|2014-01|2014-02|2014-03|2014-04|2014-05|
1 | T | F | F | F | F |
2 | F | F | F | F | ? |
3 | F | T | F | F | F |
【问题讨论】:
-
那你在追求什么?给定月份是否为
NaN,前3个月也是NaN? -
您需要显示更多示例数据并添加所需的结果。根据您的描述,该 excel 公式是不够的,因为行动月份可能因行而异。使用
any()或all()在 pandas 中复制该 excel 公式非常容易。 -
我对
int值的指标感兴趣,在它们之后有 3 个后续NaNs,我添加了一个示例。 -
啊,谢谢,示例输出有很大帮助!!!