LoginSignup
0
1

More than 1 year has passed since last update.

データの前処理で使ったPythonコード(csv読み込み、データ確認)

Last updated at Posted at 2021-09-30

はじめに

データの前処理をする際に使用頻度の高かったコマンドのメモ。
詳細は、pd.read_csvとかで検索してください。
負荷の低い処理とかについては勉強中、もっと楽な書き方などあれば誰か教えてください。

以下に分けて書いていく予定。

  • データの読み込み、確認 ←今回はこれ
  • データの加工、書き出し
  • 数値データの処理

環境:Python 3.8.5(Windows)、Anaconda、Spyder など

カレントディレクトリを作業フォルダに移動

import os
os.chdir("C:/Users/xxx … ")

csvの読み込み

データフレームにcsvの内容を格納する

import pandas as pd

file = "./data/datafile.csv" 

# zipやgzファイルのまま読み込みも可能
df = pd.read_csv("./data/datafile.csv.zip")
df = pd.read_csv("./data/datafile.csv.gz")

# そのまま読み込むと1行目=ヘッダー、index列なしとして読み込む
df = pd.read_csv(file)

# index_colでインデックス行を指定
df = pd.read_csv(file,index_col=0)

# herderでヘッダ行を指定(それより上は破棄)
df = pd.read_csv(file, header=0)
df = pd.read_csv(file, header=[0])
df = pd.read_csv(file, header=None)

# usecolでカラムを指定して取得
df = pd.read_csv(file,usecols=["time"])

# keep_default_na=Falseとすると、欠損値を自動でNanにしなくなる(データ型がstrになるが)
df = pd.read_csv(file,keep_default_na=False)

# nrowsで読み込む行数を指定
df = pd.read_csv(file,nrows=10)

# skiprowsで読み込みを飛ばす行数を指定
df = pd.read_csv(file,skiprows=10)
df = pd.read_csv(file,skiprows=range(1,10))

フォルダ内の全csvを取得

import glob

import_dir = "C:/Users/xxx … "

files = sorted(glob.glob(import_dir + '/*.csv'))
        
# CSVファイルの中身を読み出して、データフレームのリスト形式にまとめる
csv_list = []
for file in files:
    csv_list.append(pd.read_csv(file))

データフレームを結合

# 下方向に結合する
con_csv = pd.concat(csv_list)
# ignore_indexで元データのindexを破棄して番号を振りなおす
con_csv = pd.concat([df1,df2], ignore_index=True)

# 右方向に結合する
con_csv_1 = pd.concat([df1,df2], axis=1)

データの内容を確認する

データの中身を確認

# データの先頭を表示(デフォルトは5行)
df.head(3)

# データの末尾を表示
df.tail(3)

データ型などを確認

# カラムごとのデータ型を取得
df_types = df.dtypes

# インデックス数、カラム数、データ型を確認
df_info = df.info()

カラム名、インデックスの一覧を取得

# カラム名一覧を取得(index形式で出力される=list形式ではない)
df.columns

# インデックス一覧を取得(index形式)
df.index

データフレームの要素を参照する

# データフレームの1データを取得する 
d = df.iat[1,2]

# データフレームの1列を取得する
col = df["time"]
col = df.iloc[:,3]

# データフレームの1行を取得する
row = df.iloc[3,:]

参考

調べているときはだいたいこの2サイトにたどり着くことが多かったです。
note.nkmk.me
DeepAge

0
1
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
0
1