看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
需求为 Excel 中对比两个文本内容并提取不同部分,例如 a: 一二三四 五六七八 九十,b: 二三 五六七,需要 c 输出:一四 八 九十。
使用 assign 增加一列 c,c 由列表推导式对两列进行逐元素判断,如果 a 的元素不在 b 中,就放入列表,最后用 join 把列表连接为字符。
解决代码如下:
import pandas as pd
# 可以使用 pd.read_excel() 读取文档
df = pd.DataFrame({'a': ['一二三四 五六七八 九十'],
'b': ['二三 五六七'],
})
df
a | b | |
---|---|---|
0 | 一二三四 五六七八 九十 | 二三 五六七 |
fun = lambda x: ''.join([i for i in x.a if i not in x.b])
df.assign(c=df.apply(fun, axis=1))
a | b | c | |
---|---|---|---|
0 | 一二三四 五六七八 九十 | 二三 五六七 | 一四八九十 |
更新时间:2024-08-18 15:40:02 标签:pandas python 文本