根据条件熊猫替换列表列中的值

时间:2020-03-08 03:27:48

标签: python pandas dataframe

我有一列列表,我想在其中循环遍历所有行中的每个列表元素,并用字符串值替换所有数字值。例如

                                          column
      [10.50.21.134,10.30.2.197,SLO-Y30-001,IVER02-Y30-001,DCT-Y30-001]
      [CHTN,WBGN,10.50.21.134,10.50.21.136,10.50.21.135]

我想遍历列表的每个元素,并比较多行中的值,然后用具有字符串的值替换所有行

预期输出:

                                       column
               [CHTN,WBGN,SLO-Y30-001,IVER02-Y30-001,DCT-Y30-001]
               [CHTN,WBGN,SLO-Y30-001,IVER02-Y30-001,DCT-Y30-001]

我的数据集很大,比较可能在10行中,每行最多包含列表中的30个元素

到目前为止,我所能做的就是对行进行分组,将所有数字值替换为空值,但是我被卡住了,我不知道如何在保持元素顺序的同时进行连接或合并列出比较所有行中的每个元素并进行替换的最佳方法

   @staticmethod
   def test(df):
            df['doc']=df['nwctdoctrail'].apply(lambda x : x.split(','))
            df['doc']=df['doc'].apply(lambda x : [w[:-2] for w in x])
            df['doc']=df['doc'].apply(lambda x: [w.replace(w,' ' if w[0].isdigit() else w) for w in x])



   @staticmethod
   def preprocess_df(df):
    test=df.groupby('grouping_key').apply(test())

我得到的输出结果:

                         doc

               ['','',SLO-Y30-001,IVER02-Y30-001,DCT-Y30-001]
               [CHTN,WBGN,'','','']

0 个答案:

没有答案