How to make datas our friends

「エンジニアは発信していくことが責務である」という言葉に感化されて始めた勉強したことを書き留めていく備忘録的なやつ。

AWS CLIを使用しS3のバケット内のファイルを部分一致で削除する

概要 タイトルの通りです。 AWS CLIを使用してS3のバケット内にあるファイルを、部分一致で条件が一致したものだけ削除する方法です。 AWS CLIの設定方法は以下の記事でも簡単に触れているので、もしわからない方は参考までに。 024minion.hatenablog.jp や…

MySQLで同一ユーザの複数レコードから最新のデータのみ抽出する

SQL

概要 MySQLでテーブル内に同一ユーザ(ユーザじゃなくてもいいですが)のレコードが複数入っている状態で、ユーザごとの最新もしくは一番古いレコードのみを抽出する方法を紹介します。 例えば、user_purchase という、ユーザごとに何をいつ購入しているかの…

AdjustのローデータをS3に毎時自動でアップロードする方法

概要 アプリの広告計測ツールである Adjust にはローデータを毎時S3に自動で転送する機能があるのですが、ドキュメントがまぁとっつきにくい、そしてサポートが塩対応なので解決の手助けを一切してくれない、結果設定にぼちぼち時間を使ってしまったので、こ…

賢いシートを作ろう!Googleスプレッドシートの便利技 - 中級編 -

一年前くらいに書いた記事 かっこいいシートを作ろう!Googleスプレッドシートの便利技 - 初級編 - - How to make datas our friends の続き、中級編です。(もう書いてから1年経つのか...) 本記事では、シートがスマートになる便利な技をいくつか紹介しま…

超初心者がDockerをいじってみた話 - その1 インストール編 -

あらすじ 普段データに関係する業務しかやってこなかったため、Dockerを使ってどーのこーのという経験はほとんどなかったが、ちょっといじってみたいな〜という気持ちは以前からあった。 最近友達となにかWEBサービスを作ろうぜ!というノリでDockerをいじる…

BigQueryでint32とint64の型の不一致で苦しんだ話

概要 CASE文を使って条件にマッチすればINT型のデータを、それ以外は0にしてSUMしようとしたら、型が違うと怒られたので、どう対処したかの備忘録。 要はこんな感じのクエリ。 SUM(CASE WHEN 条件 THEN 数(INT) ELSE 0 END) AS cnt ちなみにデータがない場合…

pandasでunix時間をdatetimeに変換する

概要 某計測ツールから落としてきたCSVファイルを pandas で読み込んでゴニョニョしていたのだが、日時情報がUNIX時間だったので、pandas で datetime に変換した備忘録。 やったこと to_datetimeを使用して変換しました。 import pandas as pd dataset = pd…

JupyterNotebookでboto3を使えるようにした話

概要 ローカルのJupyterNotebookからS3の操作をしたかったのでAWS SDKのboto3を入れたという話。 boto3に関してはこちらを参照: AWS SDK for Python | AWS ちなみにJupyterNotebookでと書いているが、普通にPythonのboto3をローカルに落として使えるように…

LINE API x Google App Script で bot を作成した話

あらすじ 友達とLINEしてるときに、グループにBotを追加したら面白そう!便利そう!夢がある!と思いたちBotの作成にチャレンジしました。LINEが Messaging API というものを提供しているので、今回はこれを使用します。 business.line.meサーバーを用意する…

ShellScriptでMySQLの実行結果を変数にぶち込む

概要 ShellScriptをかきかきしていたときに、MySQLの実行結果(今回は数字)をShellの変数に代入して使用したいタイミングがあり、どうやって実現したのか備忘録。 ▼こうゆうことをやりたい。 # MySQLを実行して mysql -uroot -e "SELECT SUM(hoge) FROM fug…

かっこいいシートを作ろう!Googleスプレッドシートの便利技 - 初級編 -

普段、仕事で死ぬほどスプレッドシートを使用している024minonです。 今回は、初心者でもすぐに実践できそうなかっけぇぇぇシートを作成するための機能・関数をいくつかご紹介させていただこうと思います。 その1:プルダウンリストを埋め込んでシートかっ…

Python/Shellでtxtファイルの行数をカウントする

背景 言語処理100本ノック 2015を今やっているのでその備忘録的なやつ。 やりたいこと Pythonで以下URLのhightemp.txtを読み込み行数をカウントする。 同様にUnixコマンドでも行数の確認を行い、その際wcコマンドを使用する。http://www.cl.ecei.tohoku.ac.j…

Pythonで文章をTypoglycemia化する

背景 言語処理100本ノック 2015を今やっているのでその備忘録的なやつ。 やりたいこと スペースで区切られた単語列に対して、各単語の先頭と末尾の文字は残しそれ以外の文字の順序をランダムに並び替えるプログラムを作成する。 ただし、長さが4以下の単語…

Pythonで文字列を文字コードに置換し暗号文化する

背景 言語処理100本ノック 2015を今やっているのでその備忘録的なやつ。 やりたいこと 与えられた文字列の各文字を以下の仕様で変換する関数cipherを実装する。 英小文字ならば(219 - 文字コード)の文字に置換 その他の文字はそのまま出力 この関数を用い、…

Pythonでテンプレートによる文生成をおこなう関数を作成する

背景 言語処理100本ノック 2015を今やっているのでその備忘録的なやつ。 やりたいこと 引数x, y, zを受け取り「x時のyはz」という文字列を返す関数を実装する。 さらに、x=12, y="気温", z=22.4として、実行結果を確認。 結果 Python3.6から新しく導入された…

Pythonで2つのbi-gramの集合を求める

背景 言語処理100本ノック 2015を今やっているのでその備忘録的なやつ。 やりたいこと "paraparaparadise"と"paragraph"に含まれる文字bi-gramの集合を、それぞれXとYとして求め、XとYの和集合・積集合・差集合を求める。 さらに、'se'というbi-gramがXおよ…

Pythonでn-gramを作成する

背景 言語処理100本ノック 2015を今やっているのでその備忘録的なやつ。 やりたいこと 与えられたシーケンス(文字列やリストなど)からn-gramを作る関数を作成し、この関数を用い、"I am an NLPer"という文から単語bi-gram、文字bi-gramを得る。 結果 なん…

Pythonで文章を単語ごとに分解してn番目の単語は最初の1文字をそれ以外は2文字を切り出して連層配列を作成する

背景 言語処理100本ノック 2015を今やっているのでその備忘録的なやつ。 やりたいこと "Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can."という文を単語に分解し、1, 5, 6, 7, …

Pythonで文章を単語に分解し各単語の文字数を先頭から出現順に並べたリストを作成する

背景 言語処理100本ノック 2015を今やっているのでその備忘録的なやつ。 やりたいこと Pythonで"Now I need a drink, alcoholic of course, after the heavy lectures involving quantum mechanics."という文章を単語に分解して各単語の(アルファベットの)…

Pythonで2つの文字列の文字を先頭から交互に連結する

背景 言語処理100本ノック 2015を今やっているのでその備忘録的なやつ。 やりたいこと Pythonで文字列"パトカー"と"タクシー"の文字を先頭から交互に連結して文字列"パタトクカシーー"にする。 結果 以下の方法で2つの文字列を先頭から交互に連結しました。 …

pythonで「パタトクカシーー」という文字列の1,3,5,7文字目を取り出して連結した文字列にする

背景 言語処理100本ノック 2015を今やっているのでその備忘録的なやつ。 やりたいこと Pythonで文字列"パタトクカシーー"の1,3,5,7文字目を取り出して連結した文字列にする。 (つまり"パトカー"になれば成功) 結果 以下の方法で1,3,5,7文字目を切り出して文…

Pythonで文字列を逆順にする

背景 言語処理100本ノック 2015を今やっているのでその備忘録的なやつ。 やりたいこと Pythonで文字列"stressed"を逆順で表示する。 (つまり"desserts"になれば成功) 結果 以下の方法で文字列を逆順にできました。 > str = 'stressed' > str[::-1] > 'desser…

CSVファイルをローカルのMySqlDBに取り込む

0. 概要 AppsFlyer(計測ツール)から落としてきたCSVのローデータを、ローカルのMySqlDBに取り込むのに若干苦戦したので、無事成功するまでの過程を後世に残そうと思いメモ。かなり基礎的な技術だと思われるので、対象読者は初心者向けだと思われる。 今回ハ…