#pandasの使い方を少しずつ書いていきます。
##pandasでの保存方法と読み取り方法
(200829追記)
AI QUEST 2020に応募してみました。
前処理能力がない実力不足を感じました。
入門試験で、使った前処理も追記していきます。雑多な感じになってしまします。
import pandas as pd
#pandasデータフレームに読み込む。注意点はエクセル2010はutf-8では、保存できなくて、shift-jisなので、encoding="SHIFT-JIS"を入れること。
df = pd.read_csv("dataset_****.csv",encoding="SHIFT-JIS")
# dfにpandasデータフレーム名を入れる。
df.to_csv("df.csv")
##リストの作り方
#モジュールのインポート
import pandas as pd
#リストを作成
x = [-6.836951,-5.927641,-5.907641,-5.476121,-4.387844]
y = [-1.826294,0.054874,0.024874,0.336462,-0.818773]
#pandasデータフレームを作る。indexは列名。columnsがカラム名。
#ここは、列名x,yのデータフレームができている。
d = pd.DataFrame(data = [x,y],index = ['X','Y'] )
print(d)
#データフレームに、.Tをつけると、転置される。
D =d.T
print(D)
##文字列の中に含む文字を特徴量として追加する方法
この例では、amenitiesという列名の中に、いろいろな文字列が入っている中から、TVという文字列があるもののデータを選んで、新しいTVという列を作って、pandasのデータフレームに、TVという文字列がある場合は1を入れます、ない場合は0が入ります。
文字列を含む列をpandas
のデータフレームで指示します。df["amenities"]
文字列を指定するメソッドは、.str.contains
そこで、(文字列、
regex=True)* 1で、最後の
*1がなければ、
True、
Falseが入ります。最後に
*1をつけると、1,0が入ります。機械学習やるためには、最後に
*1`を入れて、1,0のワンホットにした方が良いと思います。
df["tv"] = df["amenities"].str.contains("TV", regex=True)* 1
##欠損値の処理方法
#pandasのインポート
import pandas as pd
#pandasデータフレームに読み込む。注意点はエクセル2010はutf-8では、保存できなくて、shift-jisなので、encoding="SHIFT-JIS"を入れること。
data = pd.read_csv("dataset_****.csv",encoding="SHIFT-JIS")
#データ構造のプリント
print(data.shape)
#欠損値のある行の数をカウントする
print(data.isnull().sum())
#カウントしたデータを、リストに入れる
data_insul_sum = data.isnull().sum()
#リストをpandasデータフレームに入れる
data_missing = pd.DataFrame(data=data_insul_sum)
#データフレームを保存する
data_missing.to_csv("missing_****.csv")
##Pandasでグラフを作る。
Pandasのplotの全引数を解説
https://own-search-and-study.xyz/2016/08/03/pandas%e3%81%aeplot%e3%81%ae%e5%85%a8%e5%bc%95%e6%95%b0%e3%82%92%e4%bd%bf%e3%81%84%e3%81%93%e3%81%aa%e3%81%99/
ここを見ましょう。