とらりもんHOME  Index  Search  Changes  Login

とらりもん - pandas Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

!pandas

pythonのデータ処理用の高機能モジュール。

CSVファイルをデータフレームを読み込む:
普通にやるなら:
df = pd.read_csv("data.csv")
このとき, 最初の行が, 列の項目名になる。

最初の1〜9行を行(第0行)から第9行までをスキップ:
df = pd.read_csv("data.csv", skiprows=9)

特定の列を行のindexにする:
df = pd.read_csv("data.csv", index_col='#ymd')

その列を日付としてindexにする:
df = pd.read_csv("data.csv", index_col='#ymd', parse_dates='#ymd')


データフレームの特定の列だけを抽出:
df_new = df[['label1','label2']]    ... 2重の[[ ]]であることに注意!

データフレームの特定の行だけを抽出:
df[df.index.month>8]  ... (indexが年月日の場合)9月以降の行を抽出
df['2010-01-01':'2010-10-31']  ... (indexが年月日の場合)ある日付範囲だけを抽出

データフレームの特定の要素を抽出:
x=df.iloc[3,4]

データフレームの特定の要素に値を書き込む:
df.iloc[3,4]=2.718

日付を3日だけ増やす:
import datetime
date + datetime.timedelta(days=3)

データフレームのカラム名の付替え:
df.columns=['item1', 'item2']
あるいは,
df_new=df.rename(columns={'label1':'LABEL1', 'label2':'LABEL2'})

データフレームの末尾に別のデータフレームを結合:
df_new=df1.append(df2)

データフレームに別のデータフレーム(シリーズ)を列として結合
df['column name']=df_other['column name']

データフレームの特定の行を3倍する:
df['label2']*=3

データフレームを列方向に演算
df.mean(axis=0)
df.var(axis=0)

データフレームを行方向に演算
df.mean(axis=1)
df.var(axis=1)
df.max(axis=1)

↑これらを応用してこんなの↓もできる:
df.mean(axis=1).max(axis=0)  ... 行方向に平均とったものの, 列方向の最大値

共通のインデックスを持つ2つのデータフレーム(シリーズ?)をくっつけて1つのデータフレームにする:
pd.concat([df1, df2], axis=1)

データフレームをCSV形式で標準出力:
df.to_csv(sys.stdout)     ... sys.stdoutをファイル名(''でくくる)にかえると, ファイルへの出力になる。

データフレームで、|YYYY | MM | DD| → |yyyy-mm-dd|
(すなわち、YYYYとMMとDDをすべて同じ列にする)

pd.DataFrame({'yyyy-mm-dd':df[['YYYY','MM','DD'].apply(lambda x : '{}/{}/{}'.format(x[0],x[1],x[2]), axis=1)})

データフレームの特定の列のユニークな要素を取り出す
pd.Series(df['name'].values.reval()).unique()