在Pandas DataFrame中使用条件语句来派生具有特定值的新列[关闭]

问题描述 投票:-3回答:2

我有这样的数据集

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

谢谢

python python-3.x dataframe
2个回答
0
投票

如果df是你的DataFrame

           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

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

还请发布您尝试过的代码。

祝好运!

愿守则和你在一起!

© www.soinside.com 2019 - 2024. All rights reserved.