この記事は古川研究室 Advent_calendar 3日目の記事です。
本記事は古川研究室の学生が学習の一環として書いたものです。内容が曖昧であったり表現が多少異なったりする場合があります。
はじめに
本記事では私がデータ整形でpandasを用いた時に便利だったコマンドのまとめをしようと思います。
プログラム初心者がお送りする内容なので暖かい目で見ていただけると助かります^^
本文
import pandas as pd
df=pd.read_csv('ファイルパス')
基本的にはこれでcsvを読む
実際にはいくつものファイルを読み込まないといけない状況もあるはずなのでそんな時に使った方法を下に示します。
複数のファイルをまとめて読み込んでしまいたいとき
import glob
# 同じ階層
file_pass = glob.glob('*.csv')
# 階層も指定できる
file_pass = glob.glob('○○/○○/*.csv')
これで指定した階層にある.csvファイルのパスをとってこれます。
○○/○○ というディレクトリに
data_1.csv , data_1.txt , data_2.csv , data_2.txt
が存在している場合は
[○○/○○/data_1.csv,○○/○○/data_2.csv]
が返されます。
あとはfor文で
counter = -1
for i in file_pass
df = pd.read_csv(i)
counter = counter + 1
# なにか操作を加えて
# 保存しなおし、indexなしで保存する場合はindex=Falseを付ければ良き
df.to_csv('new_name_{0}.csv'.format(counter))
と一気にデータ整形できます(to_csvやらcounterとかはてきとう)
os
名前つけるときとかに便利なのがこれ
import os
# ()の中のパスを持ってこれる"../"でこのコード書いてる場所の一個上参照したりとか
path = os.path.abspath(filepath)
# パスのうちファイルネームを持ってこれる
# globと合わせて使うと便利だった
name = os.path.basename(filepath)
# 拡張子もいらないよって時に.でsplitして分割しちゃう
name = name.split(".")
name = name[0]
まとめ
globとosつかうと一気にcsvファイル読み込んで同じ操作加えるのが楽だよって話でした。
自分でやってる際に思ったことなんですが、pandasの操作自体は"pandas ○○"って感じでググればでてくるのですが、pandasの機能なのかpythonのライブラリなのか判断つかなくてうまく検索できないって状況が多かったです。
何ができるのか程度は知っておいて適切にググる力をつけていきたいです╭( ・ㅂ・)و