『Python 3爬虫類、データ洗浄と可視化実戦』の読解不明点、主なコードまとめ(9章)


『Python 3爬虫類、データ洗浄と可視化実戦』
零一韩要宾黄园著
第九章:pandasデータクリーンアップ
9.1データの読み書き、選択、整理と説明
Pandasはデータ洗浄用のPythonライブラリですが、依存ライブラリが多いのでanacondaをダウンロードすることをお勧めします.関連ライブラリが内蔵されています.
9.1.1 CSVデータの読み出し
df = pd.read_csv(“csv_path”,delimiter=”,”,encoding=””)   

パラメータ説明:「csv_path」、CSVファイルパス;delimiter=",":区切り方;encoding=」:ファイル符号化フォーマット.
9.1.2 CSVへのデータ書き込み
df.to_csv(“csv_path”,columns=[‘value1’,’value2’],index=False,header=True)	

パラメータの説明:「csv_path」ファイルパス、columns=[‘value 1’,‘value 2’]:書き込みが必要なデータ、index=False:DataFrameをファイルに保存し、インデックス情報を無視(Trueはデフォルト、インデックス情報を保存)、header=True
テーブルの記述統計の表示
df.describe()

9.2データのグループ化、分割、結合、変形
9.2.1データパケット
Groupby:
Means = df[“   ”].groupby(df[“   ”],df[“  ”]).mean()
>>>Means

sizeメソッド:各パケットサイズを含むSeriesを返します.
9.2.2データ分割
df1=df[30:40][[‘  ’,’  ’]]	

#df1    30-39   

9.2.3データ集計
Pandasには、3つの統合データセットが組み込まれています.
Pandas.merge
1つ以上のキーで複数のデータフレームを接続
Pandas.concat
1つの軸に沿って複数のオブジェクトを重ね合わせることができます.
Combine_first
重複する部分を結合して、欠落した部分を埋めることができます.
Pandas.merge(df1,df2,on=” Column_name”,how=”inner/outer/left”,left_index=True,right_index=true)

パラメータの説明:On:同じカラム名のカラムをマージします.デフォルトでは同じカラム名が選択されます.How:inner(内部接続)、outer(外部接続)、left(左接続)、right(右接続)を含む
ないぶせつぞく
2つのテーブルの同じデータのマージ出力
がいぶせつぞく
2つのテーブルのすべてのデータのマージ出力
左の接続
左のテーブル(df 1)に基づいて、df 1にない行属性を追加します(df 2から新しいデータを探します)
左の接続
右のテーブル(df 2)に基づいて、df 2にない行属性を追加します(df 1から新しいデータを探します)
left_index:左テーブル(df 1)インデックスを接続キーとしてright_index:右テーブル(df 2)インデックスを接続キーとして(df 1.join(df 2):joinメソッドでもインデックスを接続キーとして使用できます)Pandas.concat([s1,s2,s3])#s 1,s 2,s 3の軸に沿って統合
9.2.4データ変形
Data.stack()メソッド:データの列を行データに変換する.unstack()メソッド:Dataの行を列に変換する
9.3欠落値、異常値および繰返し値処理
9.3.1欠落値処理
欠落値の表示:df1.isnull()削除行:df1.dropna()代替欠落値:df1.fillna(“ ”) df1.fillna(method=”pad/bfill”,limit=1)#pad空の値の代わりに前の同じ属性のデータを使用します.fillは、空の値の代わりに同じ属性のデータを使用します.Limitは、空の値の代わりに列ごとに置換される数を表します.
9.3.3重複値の除去
重複値があるかどうかを判断する:df1.duplicated()重複データを削除する:df1.drop_duplicates()9.4シーケンスデータ処理
9.4.1日付/時刻データ変換
import time 
>>>Time.time()							#       
>>>time.localtime()						#      
>>>time.mktime(time.localtime())		#           

9.4.2シーケンスデータ基礎操作
import datetime
import numpy as np
import pandas as pd

#periods      ( 2019-05-17    );freq            (M/D/H: / /  )
Pd.date_range(“2019-05-17”,periods=31,freq=”M/D/H”)

( "Life's a mixed bag, no matter who you are."--《About Time》 )