doestar
(ドエスタ)
(ドエスタ)
ペンぞうさん、Pythonでデータ処理するのにPandasを使ってみたら超便利ですね。
チートシートとかありますか?
ぺんぞう
そう思って用意しておいたぞよ。この調子でPythonでしっかりデータ処理にはげみなさい
Series
1次元ラベル付き配列
s = pd.Series([1, 3, 5, np.nan, 6, 8])
Dataframe
二次元のラベル付きデータ構造:
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
データのRead / Write
df = pd.read_csv('file.csv')
df = pd.read_excel('file.xlsx')
df = pd.read_json('file.json')
df.to_csv('output.csv')
df.to_excel('output.xlsx')
df.to_json('output.json')
データの選択
df['A'] # 列の選択
df[['A', 'B']] # 複数列の選択
df.loc[0] # ラベルによる行の選択
df.iloc[0] # インデックスによる行の選択
df.loc[0, 'A'] # 特定のセルを選択
df[df['A'] > 5] # 条件に基づく選択
リストをDataframeに変換する
import pandas as pd
data = [
['商品名', '型式', '備考'],
['productA', 'type1', 'aaa'],
['productB', 'type2', 'bbb']
]
df = pd.DataFrame(data[1:], columns=data[0])
print(df)
商品名 | 型式 | 備考 |
productA | type1 | aaa |
productB | type2 | bbb |
データの操作
df['C'] = df['A'] + df['B'] # 新しい列の作成
df.drop('C', axis=1) # 列の削除
df.dropna() # 欠損値の削除
df.fillna(value=0) # 欠損値の置換
df.sort_values(by='A') # 値でソート
df.groupby('A').sum() # グループ化と集計
データの結合
pd.concat([df1, df2]) # データフレームの連結
pd.merge(df1, df2, on='key') # データフレームの結合
基本統計量と集計
df.describe() # 基本統計量の計算
df.mean() # 平均値の計算
df.median() # 中央値の計算
df.max() # 最大値の計算
df.min() # 最小値の計算
df.count() # 非欠損値の数を計算
時系列データの処理
df['date'] = pd.to_datetime(df['date']) # 日付型に変換
df.set_index('date', inplace=True) # 日付をインデックスに設定
df.resample('M').mean() # 月次データにリサンプリング
コメント