2
4

More than 1 year has passed since last update.

pandasでcsvのデータ加工

Last updated at Posted at 2021-08-26

データ読み込み

import pandas as pd
path = 'csvのパス'
df_csv = pd.read_csv(path)
df_csv = pd.read_csv(path, header=None) #カラム名無し(0からの連番がカラム名)
df_csv = pd.read_csv(path, names=('A', 'B', 'C', 'D')) #カラム名指定

不要な列、行の削除

df_csv = df_csv[['必要なカラムを,区切りで記載']][必要な行指定]

任意の要素取得

df_csv.iloc[4:10, 2:6] #5から10行目、2から5列目を指定
df_csv.loc[5:10, '初めの指定からカラム名':'最後の指定カラム名'] #5から10行目を指定

条件抽出

df_csv[df_csv['抽出カラム名'] == '抽出条件']
df_csv[df_csv['抽出カラム名'] > 数字]
df_csv[df_csv['抽出カラム名'].isin'抽出条件']

ユニークな値の抽出

df_csv['カラム名'].unique()

重複除去

df_csv.drop_duplicates(subset='[カラム名]')

カラム名変更

df_csv.columns = ['変更後のカラム名']
df_csv = df_csv.rename(columns={'変更前のカラム名': '変更後のカラム名'})

並び替え

df_csv.sort_values('カラム名') #昇順
df_csv.sort_values('カラム名', ascending=False) #降順

ダミー変数の処理

pd.get_dummies(df_csv, columns=['カラム名'])

欠損値の確認、補完

df_csv.isnull().sum() #確認 
df_csv.fillna(0) #0で補完

欠損値の削除

df_csv.dropna(axis=1) axis=0なら行削除

ユニークな値と出現回数

df_csv['カラム名'].value_count(s)

グループごとの集計

df_csv.groupby('カラム名').mean() # 平均値
df_csv.groupby('カラム名').std() # 標準偏差
df_csv.groupby('カラム名').median() # 中央値
df_csv.groupby('カラム名').max() # 最大値
df_csv.groupby('カラム名').min() # 最小値

csvの出力

df = df_csv.fillna(0).to_csv('ファイル名', index=False, header=False) # カラム名、index無し
df = df_csv.fillna(0).to_csv('ファイル名', columns=["カラム名1","カラム名2"]) #特定のカラムのみ

df.to_csv(sys.stdout) # 標準出力
2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4