我々はデータマイクロ文字の友人を分析するためのpythonを使用して、この時間
まず、7つの依存ライブラリをインストールします
- 1、枕
PIL:Pythonのイメージングライブラリは、すでに画像処理の事実上のプラットフォームPythonの標準ライブラリです。PILは非常に強力ですが、APIを使用することは非常に簡単です。
PILのためにのみ、Pythonの2.7、プラス荒廃をサポートし、いわゆるPIL互換性のあるバージョンに基づいて作成されたボランティアのグループ、枕も、最新のPython 3.xのサポートが、新機能の多くを追加しましたので、私たちannacondaは、直接使用することができるならば、コマンドラインでインストールされていない場合は枕は、直接インストールすることができます。
枕をインストールするPIP
あなたは、発生した場合はPermission denied
、インストールが失敗し、プラスsudo
もう一度試してください。
- 2、Pyecharts
Echartsライブラリは、グラフを生成するために使用されます。Echarts BaiduはオープンソースデータビジュアライゼーションJSライブラリです。図Echartsは素晴らしい視覚化によって生成され、Pythonの図で直接生成されたデータを使用して簡単に、パイソンとインターフェースするpyecharts。使用pyechartsは、それがまたで、フラスコにジャンゴを統合用いてもよいし、別のWebページを生成することができます。
コマンドラインでPIPによってインストールされることがあります。
pyechartsをインストールするPIP
- 3、Itchat
itchatはPythonのコールマイクロチャネルを使用することが容易ではありませんでした、個人番号へのオープンソースマイクロチャネルインタフェースです。
:によってコマンドラインでピップ装着することができます
itchatをインストールするPIP
- 4、Jieba
Jieba Pythonライブラリは、優れたサードパーティ製の中国のサブシソーラスあるjieba
三つのモード単語サポートしています。正確なモード、フルモードと検索エンジンのモデルは、次の三つのモデルの特徴です。
精密モード:最も正確な文が冗長データはテキスト解析を行うために存在していない、セグメント化しようとしています
フルモード:文は、すべての可能な単語が切断されているの単語が指摘する非常に高速ですが、冗長データがあります
検索エンジンモード:長期の正確なモードに基づいて再セグメント化すること
:によってコマンドラインでピップ装着することができます
jiebaをインストールするPIP
- 5、numpyの
numpyのPythonは主に数学/科学技術計算のために、「数値のPython」に代わって、サードパーティのライブラリです。これは、オブジェクトのコレクションと多次元アレイ処理アレイのルーチンからなるライブラリです。
numpyのは、我々は簡単に以下のピア・コンピューティングを使用することができます。
- アレイの算術論理演算。
- フーリエ変換は、パターンや日常の動作を変換します。
- 線形代数に関連する業務。numpyの線形代数と組み込まれている乱数生成機能。
:によってコマンドラインでピップ装着することができます
numpyのをインストールするPIP
- 6、パンダ
パンダnumpyのは、ツールに基づいて作成されたデータ分析タスクを解決するためのツールです。パンダは、大規模なライブラリを含め、いくつかの標準データモデルが効率的に大規模なデータセットを操作するために必要なツールを提供します。パンダの言及
関数やメソッドの数が多いために迅速かつ簡単にデータを処理するために私たちを有効にします。あなたはすぐにそれがPythonが強力で効率的なデータ解析環境になるように重要な要因の一つであることがわかります。
:によってコマンドラインでピップ装着することができます
パンダをインストールするPIP
- 7、wxpy
wxpy基礎モジュールの使いやすさを向上させるために最適化されたインターフェイスの多数、および機能豊富な拡張によってでitchat。
:によってコマンドラインでピップ装着することができます
wxpyをインストールするPIP
- 8、地図データパッケージをインストールします。
ピップecharts・中国・provinces-インストールpypkg
ピップechartsのインストール -countries-pypkgを
インストールが成功した後、これらのライブラリは、我々は、マイクロ文字の友人を分析し始めました
次のステップ:
マイクロ文字のWebバージョンでログインします
wxpy インポート * BOT =ボット(cache_path = TRUE) #のログインキャッシュモード(スキャンコード)を選択し、ロボットを初期化 friend_all = bot.friends() #マイクロチャネル情報すべての私の友人を得ます
示されるように、実行後に得られた二次元コードは、ログインする携帯電話を用いたマイクロチャネルを掃引します
2.必要な部分の友人の情報を得るために、我々はあなたが必要とする情報を処理します。全視野を得るために、上記の情報から、我々は各友人の情報を取得している辞書、辞書のみ「市」、「省」、「署名」である
「ニックネーム」、「HeadImgUrl」、「セックス」です我々は、必要があります。ここでは、これらのいくつか持っている キーの抽出を。
LIS = [] #创建一个空列表 ため a_friend でfriend_all: ニックネーム = a_friend.raw.get(' ニックネーム' 、なし) #1 セックス= a_friend.raw.get( '性別'、なし) セックス= {1:" 男 "2: " 女 "0: " 其它" }に.get(a_friend.raw.get(' 性別' 、なし)なし) シティ = a_friend.raw.get(' 市' 、なし) 州 = a_friend。 raw.get(' 省'、なし) 署名 = a_friend.raw.get(' 署名' 、なし) HeadImgUrl = a_friend.raw.get(' HeadImgUrl ' 、なし) HeadImgFlag = a_friend.raw.get(' HeadImgFlag ' 、なし) ピクチャlist_0 = [ニックネームセックス、市、州、署名、HeadImgUrl、HeadImgFlag] lis.append(ピクチャlist_0)
インポートエクセル
DEF lis2e07(ファイル名、LIS): インポートopenpyxl WB = openpyxl.Workbook() シート = wb.active sheet.title = ' list2excel07 ' FILE_NAME =ファイル名+ ' の.xlsx ' タイトル = [] タイトル2 = [ニックネーム、性別、市州、署名、HeadImgUrl、HeadImgFlag] title.append(タイトル2) のための I における範囲(LEN(LIS)) のために、J における範囲(LEN(LIS [I])): sheet.cell(行I + 1 =、= J +カラム1、値=。。STR(LIS [I] [J])) wb.save(FILE_NAME) プリント(" 正常にデータを書き込む" ) lis2e07(' C:\\ユーザーmoyulin \\デスクトップ会い\\ \\ "、LIS
実行Excelは、このようなリストを取得することができます
次に、我々はデータフレンズの簡単な分析を行いました
友人= bot.friends() データ = Friends.stats_text(真=合計、性別=真、top_provinces = 30、top_cities = 500 ) 、印刷(データ)
実行した後、など
あなたの友人が表示され、その後ワードクラウド都市:
from pandas import read_excel df = read_excel('C:\\Users\\moyulin\\Desktop\\aini.xlsx',sheet_name='list2excel07') df['City'].count() df['City'].describe() from wordcloud import WordCloud import matplotlib.pyplot as plt word_list= df['City'].fillna('').tolist() new_text = ' '.join(word_list) wordcloud = WordCloud(font_path='simhei.ttf', background_color="black").generate(new_text) plt.imshow(wordcloud) plt.axis("off") plt.show()
得出如下结果
最后生成微信好友在地图上的分布图
import pandas as pd province_list = df['Province'].fillna('').tolist() count_province = pd.value_counts(province_list) for i in range(len(province_list)): province_list[i]+='省' from pyecharts import Map value = count_province.tolist() attr = count_province.index.tolist() map = Map("分布",width=1200,height=600) map.add("",attr,value,maptype='china',is_bisualmap=True,visual_test_color='#000',is_label_show=True) map.show_config() map.render('map2.html')
运行html文件可得
鼠标点过去即可得到所在区域的人数~
今天的分享到此为止,下次再见啦~