はじめに
pythonでのいろんな操作を忘れてしまうのでまとめていこうと思います!
勉強したら更新していく予定です
zipファイルの解凍
google colaboratryなどのnotebookを用いた時にデータセットなどのzipを解凍する方法です
!unzip "drive/My Drive/~/nyannyan.zip"
.csv, .tsvを読み込む
import pandas as pd
# csvを読み込む
csv = pd.read_csv('path.csv')
# tsvを読み込む
tsv = pd.read_table('path.tsv')
zipなどで圧縮されたcsvファイルをそのまま読み込むこともできる。
df_zip = pd.read_csv('Path.zip')
DataFrameの値をリスト型に変換
import pandas as pd
df = pd.DataFrame([['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], ['a', 'b', 'c', 'd', 'e', 'f', 'g']])
# valuesのtolistでリスト形式に戻す
df.values.tolist()
DataFrameのカラム抽出
カラム名(列名)を指定して特定の列を抽出できる
import pandas as pd
# "A"列を抽出
df['A']
# . (ドット) を利用しても同じ結果が得られます。
df.A
# 複数のカラムを抽出
df[['A', 'B', 'C']]
DataFrameのカラムの名前を変更
# 'A'のカラム名を'a'に変更、'C'のカラム名を'c'に変更
df.rename(columns={'A': 'a', 'C': 'c'})
DataFrameから条件を指定して値を抽出
# 'age'のカラムの値が25未満のものを抽出
df[df['age'] < 25]
# .query()を使っても同じ結果を得られる
df.query('age < 25')
# 複数選択も可能
# ageの値が25 かつ pointが50以上のものを抽出
df_store.query('(age == "25" & point > 50)')
# notも使える(age=50またはpoimnt>50でないものを抽出)
# | = OR, & = AND,
df_store.query('not(age == "25" | point > 50)')
特定の文字列を含む行を抽出
これはデータ処理100本ノックで初めて使いました
# str.contains('li'):特定の文字列を含む
df[df['name'].str.contains('li')]
# str.endswith():特定の文字列で終わる
df[df['name'].str.endswith('e')]
# str.startswith(): 特定の文字列で始まる
df[df['name'].str.startswith('B')]
参考文献
Google Colaboratoryでzipファイルの解凍とか。あれこれメモ
pandasでcsv/tsvファイル読み込み(read_csv, read_table)
【便利】Python 標準のリストと Pandas のDataFrame, Seriesを相互に変換する方法をまとめてみた