Python 使用Dataframe中的另一列数据拆分列数据

Python 使用Dataframe中的另一列数据拆分列数据,python,python-2.7,python-3.x,pandas,Python,Python 2.7,Python 3.x,Pandas,我有一个列a,它是我的数据帧中另一个列B的子集。我想用A分割父列B中的数据,以便在新列C中得到B的剩余部分。我正在使用lambda尝试下面的部分。但是内部列是一个数组,我提到的Series不能转换为str df['C'] = df['B'].apply(lambda x: x.split(df['A'],1)[1]) 示例DF: B A Ford F-Series pickup Ford Toyota Camry Toyo

我有一个列a,它是我的数据帧中另一个列B的子集。我想用A分割父列B中的数据,以便在新列C中得到B的剩余部分。我正在使用lambda尝试下面的部分。但是内部列是一个数组,我提到的Series不能转换为str

df['C'] = df['B'].apply(lambda x: x.split(df['A'],1)[1])
示例DF:

B                       A
Ford F-Series pickup    Ford
Toyota Camry            Toyoto
Ford Taurus/Taurus X    Ford
所需的输出数据列:

C
F-Series pickup
Camry
Taurus/Taurus X

这里,由于df['A']是一个系列,我们需要它作为每行的数据来执行相同的操作。是否可以将数据作为字符串传递给列。任何帮助都将不胜感激。谢谢

您可以使用
.replace
方法。由于在将品牌名称替换为空后将创建一个前导空格,
.strip
方法将删除这些空格

import pandas as pd
df = pd.DataFrame({'A': ["Ford", "Audi"], 'B': ["Ford Pickup", "Audi R8"]})

df['C'] = df.apply(lambda x: x['B'].replace(x['A'], '').strip(), axis=1)

我假设您不仅要删除模型名称,还要删除名称之前的所有内容

下面的代码实现了您想要的功能:

import pandas as pd

df = pd.DataFrame( {'A':['Ford', 'Toyota', 'Ford'], 
                    'B':['Ford F-Series pickup', 'Toyota Camry', 'Ford Taurus/Taurus X']} )

df['C'] = df.apply(lambda x: x['B'].split(x['A'], 1), axis=1)['B']
print(df)
产生:

        A                     B                 C
0    Ford  Ford F-Series pickup   F-Series pickup
1  Toyota          Toyota Camry             Camry
2    Ford  Ford Taurus/Taurus X   Taurus/Taurus X

请添加df示例和所需输出。@Craig抱歉。增加了问题定义的例子。不用担心,这个例子清楚地说明了你想做什么。我希望我的回答有帮助。谢谢@Craig。你的答案是准确的。工作。再次感谢!!