日付の連番を文字列で必要になったので、Pythonで生成する方法を二つメモしておきます。 一つ目は、 標準ライブラリである datetime を使うものです。 開始日を生成して、必要な日数だけtimedeltaで差分を加算したものをリスト化したら得られます。 生成したリストはdatetime.datetime型なので、strftimeで文字列に変換して完成です。 from datetime import datetime, timedelta # 日付のリスト生成() date_list = [datetime(2020, 1, 25) + timedelta(days=i) for i in range(10)] # 文字列に変換 date_str_list = [d.strftime("%Y-%m-%d") for d in date_list] print(date_str_list
幸か不幸か、ビジネス系のデータの多くは時系列データです。売上データもホームーページのアクセスログもセンサーデータも時系列データです。 時系列データを手にしたとき、どのようなデータなのか見てみたい、ということは多々あります。 多くの場合、折れ線グラフを描き傾向を掴む、ということをやります。 折れ線グラフを眺めると、トレンド(上昇傾向や下降傾向)や季節性などが見て取れるケースがあります。 そこで、サクッとトレンドや季節性などを掴む手法がSTL分解(Seasonal Decomposition Of Time Series By Loess)です。 STL分解(Seasonal Decomposition Of Time Series By Loess)を実施することで、元データをトレンド、季節性、残差に分解することができます。 元データ = トレンド + 季節性 + 残差 STL分解(Seas
2020年新年最初の投稿です 色々とPython製のライブラリについて調べていたら、仕事でも使えそうなライブラリを見つけたので、今回はそれを試してみます。 地名から座標を割り出す今回はジオコーディングの一種でもある地名や住所から座標を割り出してくれるPython Geocoderというのを使っていきます。Geocoderというものは、多言語にもあるライブラリだそうです。 Geocoderの特徴は、複数のマップサービスのAPIを統一されたスキーマや文法などで代わりに呼び出してくれます。 約30個近くのマップサービスに対応しており、GeocoderからGoogleMap、OpenStreetMapとあらゆるマップサービスからマップの情報を引き出してくれます。 ちなみにGoogleMapなどはAPI Keyが必要ですが、API Keyを設定していなくても、API Key不要なOpenStreet
前のエントリーでは、PHPでGeoIPを使ってIPアドレスを解析した。 本エントリーでは、Pythonを使ったやり方をメモ。と、言ってもほぼPHPと同じw データベースのダウンロード 上記のエントリーと同様なので、上記のエントリーを参照のこと。 インストール インストールにはpipを使う。pipのインストールに関しては、pythonを使っている場合大抵インストールされていると思われるので省略する。 PHPと同様にGithubの公式ページが参考になる。 GeoIP2 Python APIのインストール $ pip install geoip2 これでインストールは完了。 使ってみる 以下のサイトを参考に、PythonでもIPアドレスから地域の情報を取得してみる。 サンプルコード import geoip2.database # データベースの読み込み reader = geoip2.data
ヒストグラムを作成するhist関数 基数の数を変更する (bins) ラベルを元にヒストグラムを作成する by 非数値データの頻度をヒストグラムで表示する まとめ 参考 Pandasにもヒストグラムを作成する関数hist()が存在します。この関数は値を表示するのではなく、ヒストグラムをmatplotlibを使ってプロットします。単純に頻度の数値データが欲しい場合はvalues_counts関数が便利な関数です。 本記事では ヒストグラムの作成の仕方 value_counts関数を使った非数値データの頻度の出力方法 について解説します。 今回扱うサンプルデータはKaggleのチュートリアルからとってきたものです。 Titanic - Kaggle ここのtrain.csvという名前のファイルを使います。 (ダウンロードするためにはユーザー登録が必要ですが簡単なものなのでしておくことをお勧めし
pivot_table関数 APIドキュメント params: returns: ピボットテーブルを作成する 複数要素を元に多層化させる データの個数をカウントする 列ごとと行ごとの合計を表示 複数の統計量を表示させる 関数を使って統計処理を指定する 欠損値を補完 欠損値があるデータも表示させる まとめ 参考 ピボットテーブルとはエクセルで有名な機能の1つで馴染みの方も多いかもしれません。 複雑なデータ構造を一目で分かりやすくする目的でよく使われるもので、クロス集計したものをまとめたものとなります。 2つの要素間の相関が分かりやすく現れるので使いこなせると重宝するでしょう。例えば男女間での科目ごとの平均点といったものをひと目で把握することができます。 Pandasでも手軽にピボットテーブルを作成できるpivot_table関数が実装されています。 そこで本記事ではpivot_table関数
手軽にトピック分析を実行できるgensimを知ったので、gensimを使用して簡単な文章をトピック分析するチュートリアルを実行してみました。 トピック分析、LDA、gensimとは 詳しく理解してはいないので、簡単に言うと、 トピック分析とは、大量の文章からいくつかのトピックを分類して、与えられた文章がどのトピックに属するかを分類する手法 LDAとは、トピック分析の1種 gensimとは、トピック分析を行うことができるPython製のソフトウェア gensimを使ったトピック分析は、以下の手順で行えるようです。 文章を準備 文章を単語ごとに分割、調整 辞書を作成 コーパスを作成 LDAモデルを作成 分類したい文章をLDAモデルで分類 前提 Docker Python 2環境を作るのが面倒だったのでDockerを使っているだけです。 $ docker version Client: Vers
はじめに こんにちは、Speeeでデータサイエンティストをしている@To_Murakamiと申します。エンジニアではないのですが、コーディングを含めた分析例を発信しようと思い、企業のAdvent Calendarに参加させていただきました。 12月も暮れに差し掛かってきましたね。本日は、Word2Vec(ワードトゥベック)という自然言語処理を活用した分析例を紹介します。 このロジックを実装した目的は、ことばの表記ゆれ(類義語)発見器みたいなのを作ってみたいと思ったからです。なぜ、Word2Vecからことばの表記ゆれが分かるのでしょうか?仕組みの概要(下記)が分かると、理由を理解できます。 Word2Vecの仕組み(簡単に) Word2Vecとは言葉通り、単語をベクトル化したものです。ベクトル化した中身には当然数字が入ります。つまり、単語という言語データを数値化することができるのです! 数値
最近の自然言語処理では、単語の分散表現は当たり前のように使われています。 単語分散表現では、各単語が高次元ベクトル空間に配置され、加減乗除等の演算を行えるようになります。 これらのベクトルは、意味の近い単語に対しては同じようなベクトルになることがわかっています。 本記事では、単語分散表現のベクトルをクラスタリングし、意味が近い単語のクラスタを作ってみたいと思います。 これらのクラスタは、眺めて楽しむだけでなく、機械学習の素性として使うこともできます。 イメージ的には、以下のような感じで単語をクラスタにまとめます。 では、単語分散表現をクラスタリングして、単語のクラスタを作ってみましょう。 準備 まずは、作業用のディレクトリを作成しておきましょう。 また、必要に応じて Python の仮想環境も用意します。 以下のコマンドを実行することで、ディレクトリを用意します。 $ mkdir work
This document is for an old version of Python that is no longer supported. You should upgrade and read the Python documentation for the current stable release. The so-called CSV (Comma Separated Values) format is the most common import and export format for spreadsheets and databases. There is no “CSV standard”, so the format is operationally defined by the many applications which read and write i
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く