如何使用相同的分隔符拆分列

Coo*_*iks 3 python pandas pyspark

我的数据框是这样的,我想用冒号(:)分割我的数据框

+------------------+
|Name:Roll_no:Class|
+------------------+
|      #ab:cd#:23:C|
|      #sd:ps#:34:A|
|      #ra:kh#:14:H|
|      #ku:pa#:36:S|
|      #ra:sh#:50:P|
+------------------+
Run Code Online (Sandbox Code Playgroud)

我想要我的数据框如下:

+-----+-------+-----+
| Name|Roll_no|Class|
+-----+-------+-----+
|ab:cd|     23|    C|
|sd:ps|     34|    A|
|ra:kh|     14|    H|
|ku:pa|     36|    S|
|ra:sh|     50|    P|
+-----+-------+-----+
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 5

:如果需要按最后 2 个use拆分Series.str.rsplit,则按拆分列名称设置列,最后#通过索引删除第一个和最后一个:

col = 'Name:Roll_no:Class'
df1 = df[col].str.rsplit(':', n=2, expand=True)
df1.columns = col.split(':')
df1['Name'] = df1['Name'].str[1:-1]
#if only first and last value
#df1['Name'] = df1['Name'].str.strip('#')
print (df1)
    Name Roll_no Class
0  ab:cd      23     C
1  sd:ps      34     A
2  ra:kh      14     H
3  ku:pa      36     S
4  ra:sh      50     P
Run Code Online (Sandbox Code Playgroud)