Python 使用第二列作为分隔符拆分dataframe列

Python 使用第二列作为分隔符拆分dataframe列,python,pandas,string,split,delimiter,Python,Pandas,String,Split,Delimiter,我想使用同一行中第二列的值将一列拆分为两列,因此第二列的值用作拆分分隔符 我正在接收错误TypeError:“Series”对象是可变的,因此它们不能散列,这很有意义,因为它接收的是一个序列,而不是单个值,但我不确定如何隔离到第二列的单行值 样本数据: title_location delimiter 0 Doctor - ABC - Los Angeles, CA - ABC - 1 Lawyer - ABC - Atlanta, G

我想使用同一行中第二列的值将一列拆分为两列,因此第二列的值用作拆分分隔符

我正在接收错误
TypeError:“Series”对象是可变的,因此它们不能散列
,这很有意义,因为它接收的是一个序列,而不是单个值,但我不确定如何隔离到第二列的单行值

样本数据:

    title_location                    delimiter
0   Doctor - ABC - Los Angeles, CA    - ABC -
1   Lawyer - ABC - Atlanta, GA        - ABC -
2   Athlete - XYZ - Jacksonville, FL  - XYZ -
代码:

期望输出:

    title_location                    delimiter    title    location
0   Doctor - ABC - Los Angeles, CA    - ABC -      Doctor   Los Angeles, CA
1   Lawyer - ABC - Atlanta, GA        - ABC -      Lawyer   Atlanta, GA
2   Athlete - XYZ - Jacksonville, FL  - XYZ -      Athlete  Jacksonville, FL

让我们试试
zip
,然后
join
返回

df = df.join(pd.DataFrame([x.split(y) for x ,y in zip(df.title_location,df.delimiter)],index=df.index,columns=['Title','Location']))
df
Out[200]: 
                     title_location delimiter     Title           Location
0    Doctor - ABC - Los Angeles, CA   - ABC -   Doctor     Los Angeles, CA
1        Lawyer - ABC - Atlanta, GA   - ABC -   Lawyer         Atlanta, GA
2  Athlete - XYZ - Jacksonville, FL   - XYZ -  Athlete    Jacksonville, FL

让我们试试
zip
,然后
join
返回

df = df.join(pd.DataFrame([x.split(y) for x ,y in zip(df.title_location,df.delimiter)],index=df.index,columns=['Title','Location']))
df
Out[200]: 
                     title_location delimiter     Title           Location
0    Doctor - ABC - Los Angeles, CA   - ABC -   Doctor     Los Angeles, CA
1        Lawyer - ABC - Atlanta, GA   - ABC -   Lawyer         Atlanta, GA
2  Athlete - XYZ - Jacksonville, FL   - XYZ -  Athlete    Jacksonville, FL

尝试应用

bigdata[['title', 'location']]=bigdata.apply(func=lambda row: row['title_location'].split(row['delimiter']), axis=1, result_type="expand")

尝试应用

bigdata[['title', 'location']]=bigdata.apply(func=lambda row: row['title_location'].split(row['delimiter']), axis=1, result_type="expand")