astypeで数値型を文字列型に変換
前回紹介したstr
関数(contains
startswith
endwith
match
など)は、文字列型にしか使えません。
Pandasでread_excel
やread_csv
などをすると自動的に型を割り当ててくれるので、便利ではあるのですが数値型にも上記の関数を使い時もあります。
その方法をお伝えします。
コード紹介
# インポート import pandas as pd # 列の最大表示数を7に設定 pd.set_option('display.max_columns', 7) # 列の最大表示数を5に設定 pd.set_option('display.max_rows', 5) # ファイルの取り込み df = pd.read_excel("05k2-3.xlsx", skiprows=3, skipfooter=3) print('【すべてのデータを表示】') print(df) df_contain = df[df['男'].astype(str).str.startswith('22')] print('\n\n【男が「22」から始まるものを表示】') print(df_contain)
出力結果
少し解説
df['男']
で列名「男」の中身を取り出します。
そのあとに.astype(str)
を入れることで、文字列型に変換します。
よく使うものは以下です。
- str: 文字列
- int: 整数(int32で扱う)
- float: 浮動小数点(float64で扱う)
その後にstr
関数を使い、文字列のフィルタをかけています。
(この場合だと22から始まるもの)
ちなみにprint
に書いている\n
は改行の意味です。