【Python】Pandasで部分一致した要素を抽出する

プログラム

仕事で大量のメールがくるアカウントのメール分析をしようと考えてます。
受信日時、送信者、件名、本文をPandasに格納してます。
その際、特定の件名のメールは分析対象から除外する必要がありました。
でも完全に同じではなく、部分一致だったので下のように試しました。

まずはライブラリをインポートします。

import pandas as pd
import numpy as np

まずは3行2列のDataFrameを作成します。

df_s1 = pd.Series(['aabbcc', 'aabbdd', 'aabbcc'])

df_s2 = pd.Series(np.arange(3))

df_1 = pd.concat([df_s1, df_s2], axis=1)
df_1.columns = ['col_1', 'col_2']
df_1
--------------------------------------------------
	col_1	col_2
0	aabbcc	0
1	aabbdd	1
2	aabbcc	2

このDataFrameから’cc’の部分で検索して抽出したいと思います。

df_1_copy = df_1[df_1['col_1'].str.contains('cc')]
df_1_copy
--------------------------------------------------
	col_1	col_2
0	aabbcc	0
2	aabbcc	2

逆に’cc’を含まない行を抽出したい場合は

df_1_copy = df_1[~df_1['col_1'].str.contains('cc')]
df_1_copy
--------------------------------------------------
	col_1	col_2
1	aabbdd	1

‘~’はNotの意味を表します。

タイトルとURLをコピーしました