Python 使用Dataframe中的另一列数据拆分列数据
我有一个列a,它是我的数据帧中另一个列B的子集。我想用A分割父列B中的数据,以便在新列C中得到B的剩余部分。我正在使用lambda尝试下面的部分。但是内部列是一个数组,我提到的Series不能转换为strPython 使用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
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。你的答案是准确的。工作。再次感谢!!