【问题标题】:Using Conditional statements in Pandas DataFrame to derive new columns with specific values [closed]在 Pandas DataFrame 中使用条件语句派生具有特定值的新列 [关闭]
【发布时间】:2019-07-24 10:24:46
【问题描述】:

我有一个这样的数据集

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

谢谢

【问题讨论】:

  • 欢迎来到 StackOverflow。此问题缺少上下文或其他详细信息:请通过提供其他上下文来改进问题,最好包括您对问题的想法以及您为解决问题所做的任何尝试。这些信息可以帮助其他人识别您遇到的困难,并帮助他们写出适合您经验水平的答案。您还需要准确说明您的困难是什么,您的预期是什么,您得到了什么,以及任何追溯。

标签: python python-3.x dataframe


【解决方案1】:

如果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

【讨论】:

    【解决方案2】:

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

    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

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

    祝你好运!

    代码与你同在!

    【讨论】:

    • 欢迎来到 Stack Overflow!请停止回答您自己知道不好的问题。如果您必须告诉提问者他们的问题不清楚,如果您必须告诉他们展示他们试图解决的问题,如果您知道这是重复的:不要回答。发表评论。如果您还不能发表评论:请留下值得您花时间回答的个问题。另请参阅the help center
    • 好的,下次再来!
    猜你喜欢
    • 2019-08-17
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    相关资源
    最近更新 更多