使える

ソートはsort_values関数を使います。sort_values(by="XXX")と書きます
降順にしたい場合はカッコの中にオプションとしてascending=Falseを書きます
train[train["week"]=="火"].sort_values(by="y")
train[train["week"]=="火"].sort_values(by="y",ascending=False)

曜日が月曜日の時のyの平均値
train[train["week"]=="月"]["y"].mean()

trainのtemperatureが平均以上のデータだけを選択
train[train["temperature"]>=train["temperature"].mean()]

train.dropna(subset=["kcal"])

sample.to_csv("submit.csv",index=None, header=None)

2013-11-18 trainのdatetimeから年と月のデータを取り出し、trainの新たなカラムとして追加しましょう
train["year"]=train["datetime"].apply(lambda x : x.split("-")[0])
train["month"]=train["datetime"].apply(lambda x : x.split("-")[1])

train,testのデータの型を整数(int)に変換しましょう
train["year"] = train["year"].astype(np.int)
train["month"] = train["month"].astype(np.int)

値が「お楽しみメニュー」であれば1、そうでなければ0とする自作関数
def jisaku1(x):
     if x =="お楽しみメニュー":
                return 1
     else:
                 return 0

lambda 引数: 返り値
train["fun"] = train["remarks"].apply(lambda x:jisaku1(x))
test["fun"] = test["remarks"].apply(lambda x:jisaku1(x))

df["取引年"] =df["取引時点"].apply(lambda x:str(x)[:4])
2021.07 みたいな時に:4まで2021を取り出す作業

 df.replace(変換したい対象, 変換後のデータ)
と書き、変換したい対象はリストを指定することも可能。
他に例えば0に統一したい場合は、df2 = df.replace([-1, 999, 1000], 0)
とするだけ。df2 = df.replace([-1, 999, 1000], np.nan) NANにする

列の中の2を100に置換
df.col1 = df.col1.replace(2, 100)

スライスの利用
ここで大カッコ内は [取り出す行, 取り出す列] を指定します。 [:, :-1] は「行の全て、列は始めから最後1つ前まで」という意味

df.loc[インデックス番号] でそのインデックス番号の行

年齢のときはピニングしてからクロス集計

age_bining = pd.cut(train["age"],[0,20,30,40,50,60,100])
pd.crosstab(age_bining ,train["y"],margins=True)


この記事が気に入ったらサポートをしてみませんか?