使える
ソートは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)
この記事が気に入ったらサポートをしてみませんか?