In [1]:
import pandas as pd

In [2]:
df = pd.DataFrame({'s': ['X,Y,Z', 'X', 'XY,Y', 'Y,Z,XY']},
                  index=['a', 'b', 'c', 'd'])

In [3]:
print(df)


        s
a   X,Y,Z
b       X
c    XY,Y
d  Y,Z,XY

In [4]:
df['l'] = df['s'].str.split(',')
print(df)


        s           l
a   X,Y,Z   [X, Y, Z]
b       X         [X]
c    XY,Y     [XY, Y]
d  Y,Z,XY  [Y, Z, XY]

In [5]:
print(df.dtypes)


s    object
l    object
dtype: object

In [6]:
print(type(df.at['a', 's']))


<class 'str'>

In [7]:
print(type(df.at['a', 'l']))


<class 'list'>

In [8]:
print(df['s'].apply(lambda x: [s.strip() for s in x.split(',')]))


a     [X, Y, Z]
b           [X]
c       [XY, Y]
d    [Y, Z, XY]
Name: s, dtype: object

In [9]:
print(df['l'].apply(len))


a    3
b    1
c    2
d    3
Name: l, dtype: int64

In [10]:
print(df['l'].apply(sorted))


a     [X, Y, Z]
b           [X]
c       [XY, Y]
d    [XY, Y, Z]
Name: l, dtype: object

In [11]:
print(df['l'].apply(lambda x: ','.join(x)))


a     X,Y,Z
b         X
c      XY,Y
d    Y,Z,XY
Name: l, dtype: object

In [12]:
print(df['l'].apply(','.join))


a     X,Y,Z
b         X
c      XY,Y
d    Y,Z,XY
Name: l, dtype: object

In [13]:
print(df['l'].apply(lambda x: ','.join(sorted(x))))


a     X,Y,Z
b         X
c      XY,Y
d    XY,Y,Z
Name: l, dtype: object

In [14]:
df['l'].apply(lambda x: x.append('A'))
print(df)


        s              l
a   X,Y,Z   [X, Y, Z, A]
b       X         [X, A]
c    XY,Y     [XY, Y, A]
d  Y,Z,XY  [Y, Z, XY, A]

In [15]:
df['l'].apply(lambda x: x.remove('Z') if 'Z' in x else x)
print(df)


        s           l
a   X,Y,Z   [X, Y, A]
b       X      [X, A]
c    XY,Y  [XY, Y, A]
d  Y,Z,XY  [Y, XY, A]

In [16]:
print(df['l'].apply(lambda x: 'X' in x))


a     True
b     True
c    False
d    False
Name: l, dtype: bool

In [17]:
print(df[df['l'].apply(lambda x: 'X' in x)])


       s          l
a  X,Y,Z  [X, Y, A]
b      X     [X, A]

In [18]:
print(df['s'].str.contains('Z'))


a     True
b    False
c    False
d     True
Name: s, dtype: bool

In [19]:
print(df[df['s'].str.contains('Z')])


        s           l
a   X,Y,Z   [X, Y, A]
d  Y,Z,XY  [Y, XY, A]