盤點(diǎn)一個(gè)Python處理Excel兩列單元格中有類似字符串就返回1,沒有就返回0的操作
回復(fù)“書籍”即可獲贈(zèng)Python從入門到進(jìn)階共10本電子書
大家好,我是Python進(jìn)階者。
一、前言
前幾天在才哥的Python交流群遇到了一個(gè)粉絲提問,提問截圖如下:
覺得還挺有意思的,都是Pandas基礎(chǔ)操作,這里拿出來給大家一起分享下。
二、實(shí)現(xiàn)過程
這里【dcpeng】給了一個(gè)代碼,如下所示:
import pandas as pd
df = pd.read_excel('test.xlsx')
df["標(biāo)記列"] = df[["字符串1", "字符串2"]].apply(lambda x: len(set(x['字符串1']) & set(x['字符串2'])) > 0, axis=1)
print(df)
不過得到的是True和False,如下圖所示:

這里稍微優(yōu)化了下,直接得到0,1,三個(gè)方法,一起學(xué)習(xí)下。
【方法一】代碼如下:
import pandas as pd
df = pd.read_excel('test.xlsx')
df["標(biāo)記列"] = df[["字符串1", "字符串2"]].apply(lambda x: len(set(x['字符串1']) & set(x['字符串2'])) > 0, axis=1)
bool_map = {True: 1, False: 0}
df['new_標(biāo)記列'] = df['標(biāo)記列'].map(bool_map)
print(df)
可以得到如下的結(jié)果:
【方法二】代碼如下:
import pandas as pd
df = pd.read_excel('test.xlsx')
df["標(biāo)記列"] = df[["字符串1", "字符串2"]].apply(lambda x: 1 if len(set(x['字符串1']) & set(x['字符串2'])) > 0 else 0, axis=1)
同樣可以得到相同的結(jié)果。
【方法三】代碼如下:
import pandas as pd
df = pd.read_excel('test.xlsx')
df["標(biāo)記列"] = df.apply(lambda x: 1 if len(set(x['字符串1']) & set(x['字符串2'])) > 0 else 0, axis=1)
print(df)
后來發(fā)現(xiàn)是可以繼續(xù)優(yōu)化的,所以就有了上述代碼。

三、總結(jié)
大家好,我是皮皮。這篇文章主要盤點(diǎn)了一個(gè)Python處理Excel表格數(shù)據(jù)的問題,文中針對該問題,給出了具體的解析和代碼實(shí)現(xiàn),幫助粉絲順利解決了問題。
最后感謝粉絲提問,感謝【dcpeng】給出的思路和代碼解析,感謝【馮誠】等人參與學(xué)習(xí)交流。
大家在學(xué)習(xí)過程中如果有遇到問題,歡迎隨時(shí)聯(lián)系我解決(我的微信:pdcfighting),應(yīng)粉絲要求,我創(chuàng)建了一些高質(zhì)量的Python付費(fèi)學(xué)習(xí)交流群和付費(fèi)接單群,歡迎大家加入我的Python學(xué)習(xí)交流群和接單群!

小伙伴們,快快用實(shí)踐一下吧!如果在學(xué)習(xí)過程中,有遇到任何問題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。
------------------- End -------------------
往期精彩文章推薦:

歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請?jiān)诤笈_回復(fù)【入群】
萬水千山總是情,點(diǎn)個(gè)【在看】行不行
/今日留言主題/
隨便說一兩句吧~~
