【问题标题】:Add values into DataFrame Python 3.0将值添加到 DataFrame Python 3.0
【发布时间】:2017-08-08 08:37:36
【问题描述】:

我正在尝试使用 if-else 和 for-loop 将值添加到“Overall”列,但它似乎不起作用。

我正在使用我的 DataFrame 的“Total”列中的值来确定“Overall”列的值是通过还是失败。]

    for index, row in Score.iterrows():
         if Score['Total']>=100:
            Score.insert(index,'Overall', 'Pass')
          else:
            Score.insert(index,'Overall', 'Fail')

        Name    Maths   English Total   Overall
    0   Tom        50   50      100 
    1   Jack       80   50      130 
    2   Tim        70   80      150 
    3   Hen         1   84      85  

Attached picture of the problem

【问题讨论】:

    标签: python-3.x pandas for-loop if-statement dataframe


    【解决方案1】:
    Score['Overall'] = Score['Total'].map(lambda x: 'Pass' if x>=100 else 'Fail')
    

    【讨论】:

    • Danche:我有点好奇 lambda x 的作用是什么?
    • @user234568 lambda x只是定义了一个函数操作,也可以单独定义一个名为func的函数,使用Series.map(func)。
    【解决方案2】:

    考虑使用矢量化np.where():

    In [128]: Score
    Out[128]:
       Name  Maths  English  Total
    0   Tom     50       50    100
    1  Jack     80       50    130
    2   Tim     70       80    150
    3   Hen      1       84     85
    
    In [129]: Score['Overall'] = np.where(Score['Total'] >= 100, 'Pass', 'Fail')
    
    In [130]: Score
    Out[130]:
       Name  Maths  English  Total Overall
    0   Tom     50       50    100    Pass
    1  Jack     80       50    130    Pass
    2   Tim     70       80    150    Pass
    3   Hen      1       84     85    Fail
    

    【讨论】:

    • MaxU 怎么知道where语句是numpy还是pandas?我对 python 还是很陌生,所以我对 numpy 和 pandas 有点混淆?
    猜你喜欢
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    • 2020-03-02
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多