【问题标题】:pandas replace values of a list column熊猫替换列表列的值
【发布时间】:2022-12-23 14:11:55
【问题描述】:

我有这样的数据框

ID Feeback
T223 [Good, Bad, Bad]
T334 [Average,Good,Good]
feedback_dict = {'Good':1, 'Average':2, 'Bad':3}

使用这本字典我必须更换反馈列

ID Feeback
T223 [1, 3, 3]
T334 [2,1,1]

我尝试了两种方法,但都没有用,我们将不胜感激。

method1:    
df = df.assign(Feedback=[feedback_dict.get(i,i)  for i in list(df['Feedback'])])

method2:
df['Feedback'] = df['Feedback'].apply(lambda x : [feedback_dict.get(i,i)  for i in list(x)])

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    对我来说,第二个解决方案有效:

    import ast
    
    df['Feeback'] = df['Feeback'].apply(ast.literal_eval)
    #df['Feeback'] = df['Feeback'].str.strip('[]').str.split(',')
    
    
    df = df.assign(Feeback=[[feedback_dict.get(i,i) for i in x] for x in df['Feeback']])
    
    feedback_dict = {'Good':1, 'Average':2, 'Bad':3}
    df['Feeback'] = df['Feeback'].apply(lambda x : [feedback_dict.get(i,i)  for i in list(x)])
    print (df)
         ID    Feeback
    0  T223  [1, 3, 3]
    1  T334  [2, 1, 1]
    

    【讨论】:

      猜你喜欢
      • 2016-05-28
      • 1970-01-01
      • 2023-02-25
      • 2018-11-04
      • 1970-01-01
      • 1970-01-01
      • 2016-04-11
      • 1970-01-01
      • 2022-06-24
      相关资源
      最近更新 更多