代码之家  ›  专栏  ›  技术社区  ›  Ssong

如何有条件地运用资本化?

  •  0
  • Ssong  · 技术社区  · 5 月前

    我想知道当另一列具有特定值时如何使用大写函数。
    例如,我想更改拥有硕士学位的学生的第一个字母。

    # importing pandas as pd 
    import pandas as pd 
    
    # creating a dataframe 
    df = pd.DataFrame({
        'A': ['john', 'bODAY', 'minA', 'peter', 'nicky'], 
        'B': ['Masters', 'Graduate', 'Graduate', 'Masters', 'Graduate'], 
        'C': [27, 23, 21, 23, 24]
    })
    
    # Expected result
    #   A   B   C
    #0  John    Masters 27
    #1  bODAY   Graduate    23
    #2  minA    Graduate    21
    #3  Peter   Masters 23
    #4  nicky   Graduate    24
    

    我这样试过,但效果不好。

    df[df['B']=='Masters']['A'].str = df[df['B']=='Masters']['A'].str.capitalize()
    
    1 回复  |  直到 5 月前
        1
  •  1
  •   Subir Chowdhury    5 月前

    以下是完整的代码:

    import pandas as pd 
    
    # Creating the DataFrame
    df = pd.DataFrame({
        'A': ['john', 'bODAY', 'minA', 'peter', 'nicky'], 
        'B': ['Masters', 'Graduate', 'Graduate', 'Masters', 'Graduate'], 
        'C': [27, 23, 21, 23, 24]
    })
    
    # Capitalize column A conditionally based on B
    df['A'] = df.apply(lambda row: row['A'].capitalize() if row['B'] == 'Masters' else row['A'], axis=1)
    
    # Display the updated DataFrame
    print(df)
    

    输出:

         A         B   C
    0   John   Masters  27
    1  bODAY  Graduate  23
    2   minA  Graduate  21
    3  Peter   Masters  23
    4  nicky  Graduate  24