在Pandas DataFrame中使用条件语句来导出具有特定值的新列

时间:2019-03-02 16:40:46

标签: python python-3.x dataframe

我有一个这样的数据集

ID    Status
1     Completed
2     Completed
3     Cancelled
4     Cancelled
5     Not Available
6     Not Available

我想创建一个新列,并在状态完成时将值1放入

ID    Status          Supply
1     Completed         1
2     Completed         1 
3     Cancelled
4     Cancelled
5     Not Available
6     Not Available

谢谢

2 个答案:

答案 0 :(得分:0)

如果df是您的数据框

           Status
ID               
0       Completed
1       Completed
2       Cancelled
3       Cancelled
4   Not available
5   Not available

使用df["Status"] == "Completed"查找满足条件的行,然后使用.astype(int)将布尔值转换为整数。

df["Supply"] = (df["Status"] == "Completed").astype(int)

结果是

          Status     Supply
ID                       
0       Completed       1
1       Completed       1
2       Cancelled       0
3       Cancelled       0
4   Not available       0
5   Not available       0

答案 1 :(得分:0)

请仔细解释您的问题,并使用代码示例格式编写代码。 据我了解,这就是您想要的:

import pandas as pd
import numpy as np
#Existing Data
data={'id':[1,2,3,4,5,6],'status':['Completed','Completed','Cancelled','Cancelled','Na','Na']}
#Create a dataframe
df=pd.DataFrame(data)
#Add the 'Supply' Column
df['supply']=np.where(df['status']=='Completed',1,0)

检查此以获取更多信息: Pandas Conditional creation of DataFrame

还请张贴您尝试过的代码。

祝你好运!

代码可以和您在一起!