【问题标题】:Python: np.where with multiple conditionPython:具有多个条件的 np.where
【发布时间】:2016-07-28 22:47:06
【问题描述】:

我有 df,我尝试创建新列,其中一列中的数字是一些短语。 我用

df["Family"] = np.where(df["Qfamilystatus"] == 1, "Не замужем / Не женат", "Замужем / женат / живу в гражданском браке", "Разведен/ живем порознь", "Вдовец / вдова")

我的意思是1 - Не замужем / Не женат, 2 - Замужем / женат / живу в гражданском браке, 3 - Разведен/ живем порознь, 4 - Вдовец / вдова 但它返回TypeError: function takes at most 3 arguments (5 given) 还有其他方法吗?

【问题讨论】:

    标签: python numpy pandas


    【解决方案1】:

    我认为你需要dictionarymap 函数。

    示例:

    import pandas as pd
    
    
    df = pd.DataFrame({'Qfamilystatus':[1,2,3,4]})
    print (df)
       Qfamilystatus
    0              1
    1              2
    2              3
    3              4
    
    d = {1:"Не замужем / Не женат", 
         2:"Замужем / женат / живу в гражданском браке", 
         3:"Разведен/ живем порознь", 
         4: "Вдовец / вдова"}
    
    df['new'] = df.Qfamilystatus.map(d)
    print (df)
       Qfamilystatus                                         new
    0              1                       Не замужем / Не женат
    1              2  Замужем / женат / живу в гражданском браке
    2              3                     Разведен/ живем порознь
    3              4                              Вдовец / вдова
    

    然后你可以将新列转换为category,这样可以节省内存:

    df['new'] = df.Qfamilystatus.map(d).astype('category')
    print (df)
       Qfamilystatus                                         new
    0              1                       Не замужем / Не женат
    1              2  Замужем / женат / живу в гражданском браке
    2              3                     Разведен/ живем порознь
    3              4                              Вдовец / вдова
    
    print (df.dtypes)
    Qfamilystatus       int64
    new              category
    dtype: object
    

    【讨论】:

      猜你喜欢
      • 2017-11-18
      • 2017-02-02
      • 2020-04-02
      • 2022-06-13
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      相关资源
      最近更新 更多