Ant*_*des 2 python conditional numpy dataframe pandas
所以,我有一个包含许多变量的数据框。索引是uid,其他变量都是日期。
当某个值为 NaT 时,我试图创建标志变量,但我找不到正确的语句。
我想要这样的东西:
auxData['flagInvited'] = np.where(auxData['invited'] == NaT, 0, 1)
Run Code Online (Sandbox Code Playgroud)
我怎样才能轻松做到这一点?
我认为您需要notnull转换为boolean mask然后转换为int- Trueis1和Falseis 0:
auxData['flagInvited'] = auxData['invited'].notnull().astype(int)
Run Code Online (Sandbox Code Playgroud)
样本:
auxData = pd.DataFrame({'invited':[np.nan, '2017-01-01','2017-03-03']})
auxData.invited = pd.to_datetime(auxData.invited, dayfirst=True)
print (auxData)
invited
0 NaT
1 2017-01-01
2 2017-03-03
print (auxData['invited'].notnull())
0 False
1 True
2 True
Name: invited, dtype: bool
auxData['flagInvited'] = auxData['invited'].notnull().astype(int)
print (auxData)
invited flagInvited
0 NaT 0
1 2017-01-01 1
2 2017-03-03 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2474 次 |
| 最近记录: |