如何在数据框列的列表中拆分每个字符串

时间:2019-07-04 20:45:16

标签: pandas

我有一个数据框,其中的一列包含字符串“ A:B”的列表。我想对此进行修改,以便有一个新列,其中包含一个由':'分隔的集合,其中包含第一个元素。

data = [
    {'Name': 'A', 'Servers':['A:s1', 'B:s2', 'C:s3', 'C:s2']},
    {'Name': 'B', 'Servers':['B:s1', 'C:s2', 'B:s3', 'A:s2']},
    {'Name': 'C', 'Servers':['G:s1', 'X:s2', 'Y:s3']} 
]

df = pd.DataFrame(data)
df

df['Clusters'] = [
    {'A', 'B', 'C'},
    {'B', 'C', 'A'},
    {'G', 'X', 'Y'}
]

1 个答案:

答案 0 :(得分:1)

了解如何使用apply

  In [5]: df['Clusters'] = df['Servers'].apply(lambda x: {p.split(':')[0] for p in x})                                                                                  

  In [6]: df                                                                                                                                                         
  Out[6]: 
    Name                   Servers   Clusters
  0    A  [A:s1, B:s2, C:s3, C:s2]  {A, B, C}
  1    B  [B:s1, C:s2, B:s3, A:s2]  {C, B, A}
  2    C        [G:s1, X:s2, Y:s3]  {X, Y, G}