ななっしー

ソーシャルな機能(フォロー、スキ)含め使いこなせていません。失礼があったらご容赦を。

ななっしー

ソーシャルな機能(フォロー、スキ)含め使いこなせていません。失礼があったらご容赦を。

最近の記事

ピータースのコイントスを総当たり

ピータースのコイントスというものがあるらしい↓ ↑によると100人で投げると得するけど、1人で100回投げると損するそうな。 …いやいやいや、そんなのぜったいおかしいよ! というわけで総当たりしてみる。 あ、12回までにしてね(100回投げたら10の30乗超えちゃうから)。 うん、やっぱり期待値はプラス (1.05のトス回数乗) だね。 勝ち負けで言ったら負ける確率の方が高いけど! GIGAZINEのトス500回の例でも200回目以降はウラに片寄っており、400回目では

    • テーブル型データのピボット操作まわりの用語整理

      ピボットとか stackとか meltとか GROUP BYとか indexとか columnsとか列とかいろいろややこしいので自分なりに整理してみる。 ピボットの俺的解釈はこんな感じ。 「一意化、旋回、行列化」の用語も俺的解釈なので他所での使用は自己責任で^^ 各種ツールでの引数対応表 タテ持ちからヨコ持ちへ (しれっと自作GAWKスクリプトも混ぜてみるw) アンピボットの俺的解釈はこんな感じ。 「反復、逆旋回、リニア化」の用語もこれまた俺的解釈なので以下略^^ 各

      • 【iOSショートカット】でファイルのリネーム(拡張子も)

        前回の通り、アクション「ファイルを保存」では新規ファイル作成だと .csvだろうが .jsだろうが一律拡張子が .txtになってしまう(元から存在すればOK)。 また、ファイルアプリだと拡張子が変更できない(よね?)ので、リネームのショートカットを作る。 今回、マジック変数「名前」、「ファイルの拡張子」はさすがにそのまま再利用^^ あと、リネーム先と同名のファイルがすでに存在しているとエラーになりました(のでこちらは安心)。 (おしまい) 日本語プログラミング言語なでし

        • 【iOS】でテキストデータをテキストファイルに保存(2022-06-29: 修正)【ショートカット】

          #iOSショートカット 何を当たり前のことを、と言われるかもしれませんが、ほら iOSってサンドボックスが厳しいじゃないですか。なので… ・お気に入りのエディタがファイルアプリに対応していない ・お気に入りのメモアプリでプレーンテキスト保存ができない …でお困りの方(俺)のためにショートカット (Workflow) でクリップボードから1タップでテキストファイル保存。 まずショートカットを作ります(作り方は他の人に譲ります^^)↓ この時、上記例の「Text_Fil

        ピータースのコイントスを総当たり

          【CSV】ヘッダ列の無いPIVOT、多段/複行ヘッダを一行にして UNPIVOT、セル結合の空セルを埋める【AWK 】

          1. ヘッダになる列の無いピボット場合によってはヘッダになる列の無いピボット、属性列の無い値だけのピボットが必要なときもある。 専用ピボットを作ってもいいけど、汎用ピボットでも処理できるようにヘッダに利用する列を追加する方向で行く。 まず、サンプルの縦持ちCSV。 file 1.a: long_sample.csv↓ ID,世帯主,子,年齢1,鈴木太郎,一郎,121,鈴木太郎,二郎,111,鈴木太郎,三郎,102,山田花子,松子,132,山田花子,梅子,122,山田花子,

          【CSV】ヘッダ列の無いPIVOT、多段/複行ヘッダを一行にして UNPIVOT、セル結合の空セルを埋める【AWK 】

          【CSV】ファイルから Pandas DataFrameへ行列抽出するテンプレート

          #python3 はじめに要するに SELECTと WHERE、ついでに headと tailみたいなことができるように Google Colabで作り置き。 サンプルデータとして 東京都 新型コロナウイルス陽性患者発表詳細 - データセット - 東京都オープンデータカタログサイト ↑から 東京都_新型コロナウイルス陽性患者発表詳細(全期間一括版) 130001_tokyo_covid19_patients.csv の先頭23行を抜き出したものを Google Driv

          【CSV】ファイルから Pandas DataFrameへ行列抽出するテンプレート

          【GAWK】でグループ平均を求めたり、PIVOT、UNPIVOTするテンプレート【CSV】

          はじめに 前回からもう少し応用がきくように… ・グループ化と集計だけ(縦持ちのまま) ・ピボットするだけ。縦持ちから横持ち(wider)に ・アンピボットするだけ。横持ちから縦持ち(longer)に …の三つのテンプレートに分けとく (でもカウントと合計に限れば前回の方が便利なのよね^^)。 まず、以下の CSVデータをサンプルとする。 long_sample.csv↓ 氏名,年次,教科,点数佐藤一郎,1,国,30佐藤一郎,1,数,20佐藤一郎,1,英,10佐藤一郎,2

          【GAWK】でグループ平均を求めたり、PIVOT、UNPIVOTするテンプレート【CSV】

          【GAWK】でGROUP BY、カウント/合計、PIVOT【CSV】

          GAWKで PIVOTグーグルスプレッドシートの SQLライクな QUERY関数をいじくり回していたらなんとな~く GROUP BYとか PIVOTとかがイメージできてきた。 GROUP BYは uniqなのね。 PIVOT部はそこに辞書(JSONで言うオブジェクト)が入ってるようなものなのね。 {PIVOT1:集計値1, PIVOT2:集計値2, ...} なら GAWKの連想配列でできそうな気がしてきた。 サンプルデータとして 東京都 新型コロナウイルス陽性患者発表詳細

          【GAWK】でGROUP BY、カウント/合計、PIVOT【CSV】

          【Google Drive】のテキストファイルの文字コードを utf-8に変換【Google Colab】

          #python3 GASでできそうだけど PCじゃないとスクリプトエディタが出てこないので Google Colabからドライブをマウントする。 ただし、Google Colabはタブレットても利用できるとはいえ、CTRLキーが打てる(ソフト)キーボードがないとキツいですが。 なお、変換できるのはテキストデータのファイル(txt, csv, jsonl, xml, md, py, js等)だけです。     //コードセルに↓ #encode_text.

          【Google Drive】のテキストファイルの文字コードを utf-8に変換【Google Colab】

          【Google Drive】のテキストファイルの文字コードを判定【Google Colab】

          #python3 GASでできそうだけど PCじゃないとスクリプトエディタが出てこないので Google Colabからドライブをマウントする。 ただし、Google Colabはタブレットても利用できるとはいえ、CTRLキーが打てる(ソフト)キーボードがないとキツいですが。 なお、判定できるのはテキストデータのファイル(txt, csv, jsonl, xml, md, py, js等)だけです。     //コードセルに↓ #detect_encod

          【Google Drive】のテキストファイルの文字コードを判定【Google Colab】

          【Google Drive】のテキストファイルを正規表現検索【Google Colab】

          #python3 #grep GASでできそうだけど PCじゃないとスクリプトエディタが出てこないのよね。 でもそういえば Colabの ipynbファイルは勝手にドライブに保存されるくらいだからアクセスできるかな。(ググる)…お? マウントできた。 そういうわけで Pythonで書く。 ただ、Google Colabはタブレットても利用できるとはいえ、CTRLキーが打てる(ソフト)キーボードがないとキツい。 あ、検索できるのはテキストデータのファイル(txt, csv,

          【Google Drive】のテキストファイルを正規表現検索【Google Colab】

          CSV行列入れ替え

          #なでしこ3 #JavaScript #AWK 表計算の TRANSPOSE関数を利用 …するような方法は他の人に解説を譲りまして^^ ここではなでしこさんと JavaScriptと AWKで作り置き。     //なでしこ3(公式エディタ)で↓ 「1,23,45,6」のCSV取得の表行列交換。 //テキスト→二次元配列→行列入れ替えそれを表CSV変換して表示する。 //それ→テキスト→print#それを(element object)にテキスト設定する。#↓出力#1,

          CSV行列入れ替え

          1.005を小数点以下2桁に丸める

          #日本語プログラミング言語 #なでしこ3 なでしこさんで 1.005を 2で小数点四捨五入すると 1になる。 JavaScriptの (1.005).toFixed(2)で 1.00。 同じく Math.round(1.005*100)/100で 1。 どうやら JacaScriptで 1.005*100が 100.49999999999999になってしまうのが原因みたい。 ネットで調べると 100を掛けて 100で割る代わりに、指数を +2して四捨五入して指数を -2す

          1.005を小数点以下2桁に丸める

          バイリンガルなでしこさん

          #日本語プログラミング言語 #なでしこ3 JSメソッド実行はあるけどinstance.method()の形で実行できないのよね。 …せや! まず数値と正規表現はリテラルで渡してJS実行。     //固定小数点で丸める関数↓ ●(元実数を|元実数の桁数で|桁数に)小数点ソロエとは 桁数は(桁数-0)または0。 「({元実数}-0).toFixed({桁数});」をJS実行して戻す。ここまで1234.5を0で小数点ソロエして、表示する。 //→1235129.5を0で小

          バイリンガルなでしこさん

          東京ドーム何杯分?

          #日本語プログラミング言語 #なでしこ3 昨年の 日本語プログラミング言語「なでしこ」 Advent Calendar 2021↓ 17日目 ねずみ算の続きあるいは単位換算のこと↓ でメートル法に換算してもらった数値を東京ドームその他の単位(笑)に換算してみる。 有効数字丸めはtoPrecision()をJS実行すればいける…と思いきやイマイチ不規則なので、いつか使う機会もあろうかとなでしこさんで関数にしとく。     //有効数字桁に丸める●(元実数を|元実数の桁数

          東京ドーム何杯分?