サーバレス練習帳

着眼大局着手小局

【python】Pandasの練習!~CSV読込・行追加・グルーピング・抽出・ソート

◆まずは、初期設定

### IMPORT
import pandas as pd
import glob

### Pandas設定
pd.set_option('display.max_rows', 50)

### Dataframeの作成
df = pd.DataFrame(columns=['ユーザー名','コメント','時間'])

CSV読み込み
次のようなCSVを読み込ませてみます。

"鈴木","こんばんわ","1800"
"佐藤","おはよう","1000"
"高橋","ありがとう","1100"
"佐藤","どういたしまして","1200"
"高橋","ごきげんよう","1030"
### CSV取り込み
DIR = './'
FILE = 'chat.csv'
path = DIR+FILE #ここだけ改造
pc_log_list = glob.glob(path)
df = pd.concat([pd.read_csv(path, header=None,names=['ユーザー名','コメント','時間'])])
df

無事、取り込めましたね!
f:id:urbanplanner:20190505160334p:plain

◆行追加
こちらのサイトを参考に行追加してみます!
qiita.com

### 行追加
tmp_se = pd.Series( ['鈴木','こんにちは',1015], index=df.columns )#数字にしたいものはクォーテーションで囲まない!
df = df.append( tmp_se, ignore_index=True )
df

f:id:urbanplanner:20190505160531p:plain

◆グルーピング
for文をまわせるようになります。

### グルーピング
grouped = df.groupby('ユーザー名')
for group in grouped.groups:
    print(group)

f:id:urbanplanner:20190505160647p:plain

◆抽出

### 抽出
# 例えば鈴木もしくは佐藤だけを抽出
dfExtract = df[(df['ユーザー名'] == '鈴木')|(df['ユーザー名'] == '佐藤')]
dfExtract

f:id:urbanplanner:20190505160822p:plain
無事、抽出できました。

◆ソート

### ソート
dfExtract = dfExtract.sort_values(by=['時間'] , ascending=True)
dfExtract

時間の昇順でソーティングできました!

f:id:urbanplanner:20190505161046p:plain