Pythonデータ分析のブロックごとにテキストを読み取る実現


背景
「Pythonを用いたデータ解析」は、第6章のデータローディング動作read_xxxであり、chunksizeのパラメータがブロック毎にロードされてもよい。
テストされた結果、その本質はテキストをいくつかのブロックに分割し、chunksize行のデータを処理するたびに、最終的にTextParserオブジェクトに戻り、オブジェクトを繰り返して巡回し、ブロックごとの統合処理を完了することができる。
サンプルコード
文中のコード例の分析は以下の通りである。

from pandas import DataFrame,Series
import pandas as pd
 
path='D:/AStudy2018/pydata-book-2nd-edition/examples/ex6.csv'
# chunksize return TextParser
chunker=pd.read_csv(path,chunksize=1000)
 
# an array of Series
tot=Series([])
chunkercount=0
for piece in chunker:
	print '------------piece[key] value_counts start-----------'
	#piece is a DataFrame,lenth is chunksize=1000,and piece[key] is a Series ,key is int ,value is the key column
	print piece['key'].value_counts()
	print '------------piece[key] value_counts end-------------'
	#piece[key] value_counts is a Series ,key is the key column, and value is the key count
	tot=tot.add(piece['key'].value_counts(),fill_value=0)
	chunkercount+=1
 
#last order the series
tot=tot.order(ascending=False)
print chunkercount
print '--------------'
プロセス分析
まず、例データex6.csvファイルは全部で10000行のデータがあります。chunksize=1000を使用した後、read_csvTextParserオブジェクトに戻ります。このオブジェクトは全部で10個の要素があり、遍歴中にchunkercountを印刷して検証されました。
次に、各pieceオブジェクトはDataFrameオブジェクトであり、piece['key']Seriesオブジェクトであり、デフォルトは数値インデックスであり、値はcsvファイルのkey列の値であり、各文字列である。
各Seriesのvalue_countsをSeriesとして、前回の統計totの結果とaddで動作して、最終的にすべてのブロックデータの中の各keyの累積値を得る。
最後に、totをorderに並べ替えて、各keyの値がcsvファイルに出現する回数を降順に求める。
ここではSeriesオブジェクトのadd操作を使用して、二つのSeriesに対してadd操作を実行します。つまり同じkey:keyと同じ記録の値を統合して累積します。keyが存在しない記録設定は0にチャージします。
出力結果は:
在这里插入图片描述
ここでPythonデータ分析のブロックごとにテキストを読み取るという実現された文章を紹介します。これに関連してPythonはブロックごとにテキストの内容を読み取ります。以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。