2021-01-01から1年間の記事一覧
networkxを使って遊んでみます。 下の図のようなネットワーク(グラフ)が与えられたとき、この中の最大の連結成分を取り出します。 見ての通り、{4, 5, 6, 7, 8}が最大の連結成分になります。 まずは、ネットワークを描画してみます。 import networkx as n…
SQLで月末の日付を知りたい時の処理です。 2021-05-21 を 2021-05-31にしたいということですね。 DATE_TRUNC と DATE_ADD と DATE_SUB を使うというだけなんですが、一応やり方を残しておきます。 SELECT DATE_SUB(DATE_ADD(DATE_TRUNC('2021-05-21', MONTH)…
画像処理で遊びたくなったので、画像を読み込んで表示する方法を備忘録的に残しておきます。 OpenCVを使います。 まずは、OpenCVやNupmy、Matplotlibなどをimportして、さらにGoogle Driveをマウントしておきます。 import cv2 import matplotlib.pyplot as …
動画を1秒ずつ画像ファイルにしていく方法です。(0.5秒ごとでも0.1秒ごとでも可能です) ここでは、Google Colab上で、mp4をjpgに変換します。 まずはGoogle Driveにある動画ファイルにアクセスするために、Google Driveをマウントします。 # Google Drive…
PandasのDataFrameの列名を一括で変更する方法です。 df.columns = [リスト] とすれば一括で変えられます! 例を見てみましょう。 import pandas as pd import numpy as np # 適当なDataFrameを作る df = pd.DataFrame({ 'col1': 1, 'col2': np.random.rando…
SpotifyのAPIを使うと任意のアーティストの関連アーティストを取得できます。 Spotify APIの使い方は前回の記事で詳しく説明してるので、ぜひ読んでみてください! 前回の記事: k2-tech.hatenablog.com ミスチルの関連アーティスト20組は誰だ? 関連アーテ…
複数行にまたがる文字列のレコードを、GROUP BYで1行にまとめる方法です。 文字列をひとまとめにしたい時に便利です。 STRING_AGGを使います。 SELECT gender, STRING_AGG(name, ', ') AS names FROM UNNEST(ARRAY<STRUCT<gender STRING, name STRING>> [ ('male', 'taro'), ('male', 'jiro'), (</struct<gender>…
SQLでUNIX時間をタイムスタンプや日付に変換する方法です。 UNIXタイムスタンプとは、1970年1月1日午前0時0分0秒(UTC)からの経過秒数(整数)のことですね。 TIMESTAMP_SECONDS()やDATE()使うことで、UTCタイムスタンプや日付に変換できます。 SELECT TIME…
GCPのCloud Schedulerを用いて、Cloud Functionsを定期実行してみます。 また、Cloud FunctionsではデータをBigQueryにインサートする処理をPythonで書きます。 この一連の処理を応用すれば、「Pythonを用いてあるサイトからスクレイピングして得られたデー…
スクリプト内で、ライブラリのバージョンを確認する方法です。 pandasで試してみましょう。 import pandas as pd pd.__version__ # 1.1.5
BigQueryにローカルのCSVファイルをアップロードする方法です。 手元のCSVファイルをBigQueryにぶち込んで分析したり可視化したいって時におすすめです。 1. 前提 Google Cloud プロジェクトが選択されていること BigQuery API が有効になっていること 2. Bi…
osモジュールを使って、現在のディレクトリを変更する方法です。 import os # ディレクトリ変更 os.chdir('/Users/username/downloads/dirname') また、現在のディレクトリを確認する方法は以下です。 os.getcwd() 【お知らせ】 データアナリストのキャリア…
Pythonを使って簡単に業務効率化しましょう! globモジュールを使って、ディレクトリ内にある複数のCSVファイルを一括で読み込み、さらにそれらを縦に結合させる方法です。 例えば、あるフォルダに、何かのログがCSVとして毎日吐き出されるような場合に使え…