Pandas
ある一覧データから別の一覧データのキーに存在するものを抽出するという要件があります。 Pandasで言うと、上図のように、2つのDataFrameをmerge(つまり表データのJOINの論法ですね)することで、このようなデータを取得するというのが私の手グセなのですが…
PandasでDataFrameのカラムAの値とBの値を結合して、新たにC列を作りたい...てなことがよくあると思います。 普段は自分の中で可読性が高いと思っているapply系の手グセで記述しているのですが、まれに、他の言語やフレームワークに置き換えるまではいかない…
pandas.read_htmlについて、rowspanやcolspanで実現されているぶち抜き表についても、よろしく整然データとしてのDataFrameに変換できるということを知ったので、その感想です。 pandas.read_htmlについて pandas.read_htmlはhtml中のtableに特化したスクレ…
Elasticsearchとpandasという組み合わせでいうと、Elasticsearchの公式サイトでも紹介があるeland | Elasticなのかなと思います。 しかしながら、ElandでElasticsearchの検索クエリをかませて、それをDataFrameに入れる方法が(おそらくそのような機能を具備…
Webサイトのアクセスログの集計のワンライナーのようなものについては、かつてはいろいろ思うところがありました。 思うというか苦しめられておりました。 しかし、いまや 自分が語るには、この世界が発展・複雑化しすぎており、世界の片隅でのひとりごとと…
Elasitcsearchで「全文検索」寄りでいろいろ遊んでみようと思うと、程よい公開データが欲しくなります。 そんなデータの一例として、livedoorレストラン DataSetというのがありますので、こちらを利用させてもらって勉強するというのも一つの手かと思います…
はじめに PandasのEDAに便利な部分を、データチェックに見立てて利用すると、目的外使用かもしれないけど、便利かも? という視点でのPandasのイディオムの寄せ集めです。 (よって、そう思って見なければ、Pandasの中途半端な入門例未満の断片集だったりし…
はじめに データサイエンス的な世界に限らずですが、本処理以上に「前処理」が勝負というところがあります。 ここで、「本格的な『前処理』の更に前段の『前処理』が必要になった」という経験はありませんか。 まあ、単なる言葉遊びに過ぎないところもありま…
全国の路線をカバーしていて、比較的使いやすい元データで、ある程度結果データ量がコンパクトになると思われるような駅・路線データはないかな〜、それを使って(データ量のトレードオフとして駅と駅の間は直線でもよいので)路線図をplotツールなどで可視…
最近、社会情勢もあって白地図を目にすることが多くなっていますが、この機会にGISデータを扱う、シェープファイルやGeoJSONにふれてみようと思いました。 PythonであればシェープファイルやGeoJSONに関する便利ライブラリもいっぱいあるだろう、ひょっとす…
Pandasのアクセサ、特にstrアクセサについては、シンタックスの外面がやや特殊に感じておおりました。 よって、挙動になれるまではどこまでOKなのかわかりにくいので、気持ちのどこかで利用をさけていたのですが、ある時期以降は宣言的にロジックを書けるの…
BeautifulSoupについては、find系やselect系でのオブジェクト取得により取り回していくのが基本だとは思いますが、parentやnext_siblingなど隣接取得系(造語です)についても、たまに使うにせよ、使おうとするとどうだっけというところで悩ましいので、これ…
PandasにおけるDataFrameのシェイプ変更のメソッドである、 pivot、pivot_table、melt、stack、wide_to_longについて、これらをまとめて図解してみました。 実例 import pandas as pd import io df = pd.read_csv(io.StringIO(""" year,season,num 2010,春,4…
Pandasでgroupbyなどの際に思わず発生するMultiIndex。 いやもちろん、思わず...ではなくて正規の仕様なのですが、しばらく間が空くと少し勘を取り戻すのに苦労する仕様な気がします。 まあ間が空いていても空いてなくても、私の場合、reset_index()してしま…
概要 itdepends.hateblo.jp この記事は、上記の記事のおまけです。 Python/Pandasの DataFrameの複数の列の値の関係や比較を可視化したい時によく使われるであろうグラフ表示方式のうち比較的シンプルなプロット方法のスニペットをまとめました。 公式ドキュ…
この記事の目的/概要 itdepends.hateblo.jp 上記の記事で、Pandasのplotの簡単なまとめをしました。見栄えの工夫やより高度な可視化にはいろいろ探求の道があると思いますが、私の場合、見栄えよりも次に必要になったのは、折れ線グラフ版、棒グラフ版などと…
この記事について Pandas.DataFrameのplot関数についてまとめてみました。 なお、実のところ、まとまっている・体系的であるというところでいうと、この記事を書くのに参考にさせていただいたサイト(後述の参考文献・参考サイト)がおすすめです。 体系的に…
Python/Pandasにはgroupbyの機能があるのですが、少しトリッキーなグループ化を考えてみたメモです。 複雑な名寄せ・グループ化のニーズ 何かの集計や名寄せの際に、複数のキーやキー自体がネストされた構造化データ相当のデータで名寄せしたいということは…
たまたま自分のまわりだけかもしれませんが、次項に示した例のように、1対Nのデータを結合してネストオブジェクトのJSON Lines出力をざっくりで良い精度でやってしまいたいという例にしばしば遭遇します。 ブームの時に手グセになっていたり、その案件でガチ…
はじめに Pythonの次のライブラリ/便利メソッドの簡単な紹介です。 BeautifulSoup4のfind_allであるhtmlの全てのimgタグとそのsrc属性の抜き出し urllib.parse.urljoin(こちらの記事https://itdepends.hateblo.jp/entry/2020/02/02/142148) os.path.commonp…
pandasクックブックの部分的な感想 この記事は、こちら↓の書籍の読書感想文です。 pandasの理解が深まるとともに、他では見られない、暗黙のルール(ではないんだろうが私は良くわかってなかったpandasの世界観)が まとまっていて、非常にためになりました。…
はじめに Pandasで遊んでいて、便利だなーと思う一方で、Pandasでのある種のDSLとしての記法やライブラリをうまく使えばもっとシンプルに、かつ可読性(ここでは、ビジネスルールとデータクレンジングなどのための前処理(の前処理)をうまく分離したもの)…
はじめに 最近Python、Pandasに入門していろいろ遊びながら、ETLにおける「設計の共有」が捗る&しかけってなんだろうなと思案しております。 ETLは汚れ仕事も多いので、他の分野以上にある種のスパゲティ化しがちで、実際はそうではなくとも、時が経ってな…
はじめに この記事は、Elasticsearchの日本語検索のアナライザー周りの話の雑談&ちょっとした実験です。図らずもPythonのPandasとPythonのElasticsearch公式クライアントのちょいサンプル紹介にもなっています。 Elasticsearchのバージョンは6.4です。 経緯 …
はじめに Elasticsearch(6.4)、PythonおよびPandas関連のやってみた系の記事です。あと、ElasticsearchのPythonクライアントを使ってみたという内容も含んでいます。ElasticsearchのANALYZERの話もあまり詳しくは解説していませんが、うっすらそれとなく含ま…
はじめに 駅データ.jpという駅の路線データおよび緯度経度の座標を管理してありフリーでも利用可能な*1データが提供されています。 www.ekidata.jp 今回駅データ.jpのデータについて、次のチュートリアル(ひとまず動くサンプルコードを動かしてみるの意)と…
はじめに 行政が公開している「街区レベル位置参照情報」というデータを使って、↓こんな感じで、ある市区町村を囲むような4角形の矩形をあぶりだせないか試してみました。 ... という体裁をとった、PandasとLeafletのサンプルプログラムを動かしてみた・やっ…
はじめに Elasticsearchに取り込むにはそのままではちょっとアレかなという類のデータを手間をかけずにPandasでデータ変換するにはというテーマで考え事をしてみました。 「よくある例」なのかは断言できませんが、ボキャブラリーとして手札にあれば、間に合…
はじめに 検索サイトで、Elasticsearchなどの検索エンジンにデータを雑に食わせるにあたり、この用途にPandasが手頃(Pandasはもっとリッチなことができるはずだといった話はさておき)なような気がしてきので、サンプルコードを作成してみました。 この記事…
まえおき 他のスクリプト言語などの経験からPythonは雰囲気程度の読みこなしはできるけど、ちょっとした文字列中心のETLっぽいことがしたくてfor文はあまり書きたくなくて、Pandasだとそれが楽にできそうだけど、NumPyから入るのもちょっと目的が違うし、一…