亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何刪除 Pandas 中包含某些文本的行

如何刪除 Pandas 中包含某些文本的行

莫回無 2023-06-13 15:04:41
我有一個數據框,我想在其中刪除一些包含一些文本的行。Date      Campaign3/24/20   GA Shoes Search Campaign3/24/20   GA Shoes Display Campaign3/24/20   GA Bag Search Campaign3/24/20   GA Bag Display Campaign3/24/20   IG Shoes Campaign3/24/20   IG Bag Campaign3/24/20   FB Shoes Campaign3/24/20   FB Bag Campaign3/24/20   Email Campaign我想刪除所有行并保留包含 GA 的行。這是我想要的結果:Date      Campaign3/24/20   GA Shoes Search Campaign3/24/20   GA Shoes Display Campaign3/24/20   GA Bag Search Campaign3/24/20   GA Bag Display Campaign我試著這樣做:mask = df['Campaign'].str.contains('FB')idx = df.index[mask]new = df.drop(idx,axis=0)但是,它只有在我一次做一個字符串時才有效。我試圖這樣做以節省時間,但沒有成功:mask = df['Campaign'].str.contains('FB', 'Email', 'IG')idx = df.index[mask]new = df.drop(idx,axis=0)
查看完整描述

3 回答

?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

與其刪除包含其他字母的行,不如應用一個函數來獲取包含' GA' 的行:

new = df[df['Campaign'].apply(lambda x: 'GA' in x)]


查看完整回答
反對 回復 2023-06-13
?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

這里的假設是對于所有相關行,GA是在句子的開頭。Pandas str?startswith可以在這里提供幫助:

df.loc[df.Campaign.str.startswith("GA")]


? ? Date? ? Campaign

0? ?3/24/20 GA Shoes Search Campaign

1? ?3/24/20 GA Shoes Display Campaign

2? ?3/24/20 GA Bag Search Campaign

3? ?3/24/20 GA Bag Display Campaign

但是,如果GA可能嵌入在句子中而不是在最開頭,那么如果您提供與此類似的數據將會很有幫助。這樣,就可以確定它GA是在單詞中,還是單獨存在,或者其他什么,并希望找到適合的解決方案


查看完整回答
反對 回復 2023-06-13
?
www說

TA貢獻1775條經驗 獲得超8個贊

設置示例數據框

如果你有一個數據框:


df = pd.DataFrame({'x': ['A0', 'A1', 'B2', 'A3'],

? ? ? ? ? ? ? ? ? ?'y': ['B0', 'B1', 'B2', 'B3'],

? ? ? ? ? ? ? ? ? ?'z': ['A0', 'C1', 'C2', 'C3'],

? ? ? ? ? ? ? ? ? ?'w': ['D0', 'D1', 'D2', 'D3']},

? ? ? ? ? ? ? ? ? ? index=[0, 1, 2, 3])

看起來像:

http://img1.sycdn.imooc.com/648815f70001f05f01360130.jpg

假設您要創建包含A在 column 中的那些行x


方法

str.contains:

你可以做:

df[df['x'].str.contains('A')]

列表理解

df[['A' in each for each in df['x']]]就足夠了。


apply():

如果你喜歡apply(),可以這樣做:

df[df['x'].apply(lambda?x:?'A'?in?x)]

結果

所有這些方法都會給你:

http://img4.sycdn.imooc.com/648816030001783e01450109.jpg

最后說明?更一般地說:

  • 方法str.contains

df[df[name_of_column_which_should_contain_something].str.contains(what_should_it_contain)]

  • 列表理解方法:

    df[[what_to_search_for in each for each in df[whichcolumn]]]

  • 方法apply()

    df[df[which_column_to_search_in].apply(lambda x: what_to_search_for in x)]


查看完整回答
反對 回復 2023-06-13
  • 3 回答
  • 0 關注
  • 230 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號