仕事で大量のメールがくるアカウントのメール分析をしようと考えてます。
受信日時、送信者、件名、本文を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の意味を表します。