はてなキーワード: csvとは
俺はダッシュボード職人と呼ばれる存在だ。毎日、データを可視化するダッシュボードを作り続けている。
プログラマーがなぜ統計分析を自分で行わないのか、不思議に思う人もいるだろう。しかし、ダッシュボードを作ることには、しっかりとした理由があるのだ。
ダッシュボードには、データの検索やフィルタリング、グルーピング、プロット、データフレームのcsvダウンロードなど、様々な機能が備わっている。
これらの機能を使えば、データを自由に操作して、必要な情報を得ることができる。
そして、ダッシュボードを見るべき人は、誰なのか。それは、経営サイドやマーケティングサイドの人々だ。
彼らはこう考えるのだ。「ダッシュボードがあれば、プログラマーに分析を頼む必要はない。自分たちで分析できるのだから」
プログラマーは、ビジネスの意思決定に直接関わることはほとんどない。だから、意思決定に近い立場にいる人々が、分析の環境を整えることが重要なのだ。
プログラマーは、その環境を作るために、ダッシュボードを作るのだ。 もちろん、ダッシュボードだけでは、高度な分析を行うことは難しいかもしれない。
しかし、高度な分析が必ずしもビジネスにとって有益とは限らない。利益を上げるためには、基本的な分析で十分な場合もあるのだ。
ダッシュボードを作るには、データの品質や整合性、可視化の方法や表現、ユーザーのニーズやフィードバックなど、多くの要素に気を配らなければならない。
また、ダッシュボードは、常に最新のデータを反映する必要がある。データの更新や変更に対応するためには、ダッシュボードのメンテナンスや改善も欠かせない作業だ。
そして、ダッシュボードは、単なるツールではない。ダッシュボードは、データを通じて、ビジネスのストーリーを伝えるものだ。
ダッシュボード職人は、そのストーリーを魅力的にするために、デザインやレイアウト、色やフォントなど、細部にもこだわるのだ。
俺は、ダッシュボード職人として、自分の作品に誇りを持っている。俺は、ダッシュボードを通じて、ビジネスに貢献していると信じている。だから、俺は、ダッシュボードを作り続けるのだ。
しかし、俺の作るダッシュボードには、誰も知らない秘密が隠されている。
俺は、イルミナティという秘密結社の一員なのだ。イルミナティとは、1776年にドイツで創設された、啓蒙主義の思想を持つ組織だ。
イルミナティは、宗教や君主や国家が不要となる社会を目指し、世界を裏から操っていると言われている。
イルミナティは、フリーメイソンや三百人委員会などの他の秘密結社とも関係があり、世界の中央銀行やメディアや政府などに多くのメンバーを送り込んでいるという。
イルミナティの目的は、人類の理性と自由と平等を守ることだ。しかし、そのためには、暗闇の勢力と戦わなければならない。
暗闇の勢力とは、イルミナティの敵対組織である悪魔崇拝者や宇宙人や reptilian などの存在だ。彼らは、人類を奴隷化しようとしているのだ。
イルミナティは、その戦いのために、様々な手段を使っている。ダッシュボードは、その一つだ。
俺は、ダッシュボードにイルミナティのシンボルや暗号やメッセージを仕込んでいるのだ。
それは、イルミナティの仲間に情報を伝えたり、暗闇の勢力に対抗したりするためだ。
例えば、ダッシュボードの色には、イルミナティの色である青や赤や緑を使っている。
青は、理性と真理と忠誠を表し、赤は、勇気と情熱と革命を表し、緑は、自然と希望と平和を表すのだ。
また、ダッシュボードの形には、イルミナティの形である三角形や円や星を使っている。
三角形は、神の三位一体を表し、円は、完全さと永遠を表し、星は、光と導きを表すのだ。
さらに、ダッシュボードの数字には、イルミナティの数字である3や6や9や11や13や33などを使っている。
俺は、ダッシュボード職人として、自分の作品に誇りを持っている。俺は、ダッシュボードを通じて、イルミナティに貢献していると信じている。だから、俺は、ダッシュボードを作り続けるのだ。
https://chat.openai.com/share/c80d83ea-752b-4561-a162-7ea0bd116d56
Option Explicit
Dim objExcel, objWorkbook, objWorksheet
Dim strFolderPath, strSourceFile, strTargetFile, strSearchString, strReplaceString
Dim intLastRow, intRow, intColumn
Set objExcel = CreateObject("Excel.Application")
strFolderPath = ".\" ' スクリプトと同じフォルダにあることを仮定
strSourceFile = "変更一覧.xlsx"
strTargetFile = "変更一覧.xlsx"
Set objWorkbook = objExcel.Workbooks.Open(strFolderPath & strSourceFile)
objWorkbook.Sheets("1月").Copy , objWorkbook.Sheets("1月").Index
objWorkbook.Sheets("1月 (2)").Name = "2月"
' セルの値の置換
Set objWorksheet = objWorkbook.Sheets("2月")
objWorksheet.Cells(1, 1).Value = Replace(objWorksheet.Cells(1, 1).Value, "1月", "2月")
objWorksheet.Cells(2, 7).Value = Replace(objWorksheet.Cells(2, 7).Value, "2023/2/14", "2023/3/14")
' 最終行の取得
intLastRow = objWorksheet.Cells(objWorksheet.Rows.Count, 1).End(-4162).Row ' xlUp
' 値のクリア
For intRow = 8 To intLastRow
For intColumn = 1 To 6
objWorksheet.Cells(intRow, intColumn).ClearContents
Dim objFSO, objTextFile, strContents, arrLines, arrFields, strNewContents
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(strFolderPath & "変更一覧.txt", 1)
strContents = objTextFile.ReadAll
objTextFile.Close
arrLines = Split(strContents, vbNewLine)
For Each strContents In arrLines
arrFields = Split(strContents, ",")
For Each strContents In arrFields
If IsNumeric(strContents) Then
strNewContents = strNewContents & "'" & strContents & ","
Else
strNewContents = strNewContents & strContents & ","
End If
strNewContents = Left(strNewContents, Len(strNewContents) - 1) & vbNewLine
' データをシートに貼り付け
Set objWorksheet = objWorkbook.Sheets("2月")
objWorksheet.Cells(1, 8).Value = strNewContents
' セルの値の置換
objWorksheet.Cells(123, 1).Value = Replace(objWorksheet.Cells(123, 1).Value, "F", "FH")
objWorkbook.Save
objWorkbook.Close
objExcel.Quit
LOAD DATA INFILEでCSVを分割して読み込むことは可能なのでしょうか。そのときautoincrementのidがあった場合はどうしたらよろしいでしょうか。
はい、LOAD DATA INFILEステートメントを使用してCSVファイルを分割して読み込むことは可能です。CSVファイルを分割するには、LOAD DATA INFILEステートメントのファイル名の部分にワイルドカードを使用することができます。
以下は、例としてMySQLデータベースでのLOAD DATA INFILEステートメントの使用方法です。
LOAD DATA INFILE 'path/to/files/file*.csv' INTO TABLE your_table FIELDS TERMINATED BY ',' LINES TERMINATED BY '92;n' (col1, col2, col3); -- 列のリスト
上記の例では、path/to/files/ディレクトリ内のfile*.csvというパターンに一致するすべてのCSVファイルが読み込まれます。また、FIELDS TERMINATED BY句とLINES TERMINATED BY句を使用して、フィールドと行の区切り文字を指定しています。さらに、col1, col2, col3のように列のリストを指定することで、CSVファイルの対応する列とテーブルの列をマッピングします。
autoincrementのidがある場合、LOAD DATA INFILEステートメントでは自動的に次の値を生成することはできません。そのため、CSVファイル内に明示的にid列が存在する場合は、id列を指定して読み込む必要があります。id列がCSVファイルに存在しない場合は、テーブルの定義でid列をautoincrementに設定しておく必要があります。その場合、データベースが自動的に新しい値を生成します。
CREATE TABLE your_table ( id INT AUTO_INCREMENT PRIMARY KEY, col1 VARCHAR(50), col2 VARCHAR(50), col3 VARCHAR(50) );
この場合、LOAD DATA INFILEステートメントでid列を省略することで、自動的に新しい値が生成されます。
LOAD DATA INFILE 'path/to/files/file*.csv' INTO TABLE your_table FIELDS TERMINATED BY ',' LINES TERMINATED BY '92;n' (col1, col2, col3);
このようにして、CSVファイルのデータを分割して読み込むことができます。ただし、autoincrementのid列は明示的に指定するか、データベースによって自動的に生成されるようにテーブルを設定する必要があります。
SETしないと動かない。
分割するとauto incrementの値が飛ぶ。
LOAD DATA INFILEでCSVを分割して読み込むことは可能なのでしょうか。
そのときauto incrementのidがあった場合はどうしたらよろしいでしょうか。
現象としては、分割して読み込ませるとidが連続しないで飛ぶ。
1.csvを読み込ませた最後のidが1378だと、次の2.csvに読み込ませたのは2048から始まってる。
LOAD DATA LOCAL INFILE '***.csv' INTO TABLE *** FIELDS TERMINATED BY '92;t' LINES TERMINATED BY '92;n' (@pref_name, @type, @name, @zip, @address, @tel, @fax, @lat, @lng) SET ...
システムエンジニアをしているけどお客の自称大企業のシステム管理経験ありの役職者が要求仕様で意気揚々とExcel方眼紙で資料出してきて頭抱えている。
せめて内容がまともなら良いが書かれている内容も要求仕様からは程遠いメモ書きでこちらから細かい質問を投げては社内で確認して回答貰うメッセンジャーにしかなっていない。これで社内システムの責任者?
ほんとマジでExcel方眼紙は止めろ。餅は餅屋で表計算だけにしろ。馬鹿でExcel方眼紙しか出来ないならPDFに出力してよこせ。どうせファイル名馬鹿みたいに日付とリビジョン付けんだろうな。
ExcelはA4横に綺麗に罫線ひいて見栄えよく書類作るツールじゃないわ。あとcsvをExcelで開くな。Excelに合わせてShift-JISに文字コード要求すんな。システム担当がUTF-8のファイルをExcelで開いて「文字化けしてます。バグですね!」とか言うな。あと郵便番号データ開いて0消してはがきデータ印刷で失敗して焦んな。
こんなこと書くと何故かExcel方眼紙肯定派が出てくるけど一度も納得できる理由を聞いたことが無い。結局馬鹿が色んなツール覚えられないだけでしょ。そういう人はシステムの仕事から離れろよ。Office365もまともに使えない奴がいっちょ前にシステムエンジニアに意見言うな。レガシーシステムの改変に文句言うな。工数に口出すな。っていうかこっちが言ってること大半理解せず金の時だけ発言すんな。あとアジャイルなんでそんなに好き?アジャイルの前に自社の業務理解しろ。そのうえでExcel方眼紙やめろ。
virtualdjで出力したcueシートを、csv形式に変換するpythonスクリプトを実装してください
```python
import csv
def convert_cue_to_csv(cue_file, csv_file):
cue_data = []
with open(cue_file, 'r') as f:
# cueシートの各行を処理する
for line in f:
if line.startswith(' TRACK'):
track_data = {}
# トラック番号を取得する
track_num = line.split()[1]
track_data['Track Number'] = track_num
track_type = line.split()[2]
track_data['Track Type'] = track_type
# 次の行を処理する
# トラック名を取得する
track_name = line.split('"')[1]
track_data['Track Name'] = track_name
# 次の行を処理する
# トラックの長さを取得する
track_length = line.split()[3]
track_data['Track Length'] = track_length
cue_data.append(track_data)
with open(csv_file, 'w', newline='') as f:
writer = csv.DictWriter(f, fieldnames=['Track Number', 'Track Type', 'Track Name', 'Track Length'])
# ヘッダーを書き込む
writer.writeheader()
convert_cue_to_csv(cue_file, csv_file)
```
このスクリプトは、cueシートのファイルを開き、トラック情報を取得して、CSVファイルに書き込みます。トラック情報は、トラック
関係ないっちゃないけどw
あちこちのクレカとか電気ガスとか電話とかのWebサイトでCSV形式の明細書ダウンロードって機能が、いまだに邪悪なShift_JISエンコーディングで出してくるの、いい加減にヤメろや!
WebサイトのHTMLとかは、ほぼほぼ100%ちかくunicode(UTF-8)なのに。
ちょっと前まで、MacのクイックルックでそのCSV化け化けで見づらくてしょうがなかったんで、数10年ぶりにAppleScript書いてフォルダアクションに文字コード変換仕込んだりするハメになったやんかw VenturaになったらShift_JISでも正常にクイックルックできたけどww
ちなみに、Gmail前提の話。
GASでGmailのonCreateDraft的なトリガーとかイベントがあれば楽だったんだけど、無かった。○uck!!
Googleコンタクトで敬称を設定できるんだけど、スマート作成とかスマートリプライとかで候補に出てくるかっていうと出てきたり出てこなかったりする。○uck!!
テンプレートで変数埋め込みとかもできないみたい。○uck!!厳密にはできるんだけど、結構workaroundな感じですぐ使えなくなりそうだし他人にお勧めできない。
てかそもそも、こんなことのためにわざわざGAS使うのがおかしい。
ここまでで1時間くらい使った。まあ勉強にはなったけどそんな回り道をした俺に○uck!!
とりあえず、あなたはコピペしてるってことなんで、それ前提でちょっとした効率化を考えてみた。
下準備が面倒だけど。
まず、Googleコンタクトで敬称・会社・役職などを設定する。
連絡先がたくさんあるなら、CSVでエクスポートしてExcelかスプシで開いて、「Name Suffix」(敬称)「Organization 1 - Name」(会社)「Organization 1 - Title」(役職)の列を一括変更してインポートするのが楽。ちなみに「Name Prefix」はSirとかMr.とか入れるところ。
これで下準備は終わり。
Gmailでメールを作成するときなど、宛先メールアドレスの脇にそのアイコンや名前が出てくる。
で、アイコンや名前にカーソルを合わせて1秒ほど待つと、↓みたいなポップアップが(Googleコンタクトに登録されていれば)敬称付きの名前・会社・役職と一緒に出てくる。
https://ferret-one.akamaized.net/images/623a863585ad34000174a1e6/large.png
Googleコンタクトに姓名をどっちも入れると「田中太郎様」ってなるので、そこは名を抜かすなど臨機応変に。
連絡先を全部変更する前に、1件だけ試しでやってみるのをオススメする。
Thunderbirdの方も、Googleコンタクトを同期させれば似たような使い方ができるかもしれない。
俺はThunderbirdまともに使ったことないので、有識者に指示を仰いでください。
今は、これが精一杯。
追記:
一回のコピペで済ませたいならGoogleコンタクトにメモって項目があるので、それでも良いかもしれない。
ただ、ポップアップを表示させた後「詳細表示を開く」ってボタンを押して出てきた右ペインを一番下までスクロールしないとメモが出てこないので、一長一短という感じ。
まああとは色々やってみてくれ。
俺の仕事の話。
俺にメールしてくるのはお客さんじゃないので、「この度はお世話になります。〇〇社△△部xxと申します」とか「お忙しい中大変恐縮ですが、何卒ご検討のほどよろしくお願い致します」とかかましてきやがったら「自動差し込みとかでない限りそういうのいらないんで。俺からは一切しません」って開口一番に言う。
そういう仕事をしてる。
令和だけど令和っぽくないソフトばかりだが許してくれ、 あとURL書きすぎたら投稿できなかったので気になったのあったら調べてくれ
とりあえずファイルの中身を見るためにこういった汎用のエディタは持っておきたい。
定番が古いので乗り換え先を色々試した結果これに落ち着いた。
これだけあれば世の中の大半のソフトは解凍できるのでLhaと頭についてるソフトを使ってるひとは乗り換えよう。
Massigraから乗り換えるのに丁度よかったので是非。
軽いPDFビューア。
PDFを見るだけならこれでいいと思う。
LinuxでMPD使ってる人は入れてみてもいいけど、全くMPDを知らない人は導入クソ面倒だし操作も面倒なので入れなくていいです。
MPDクライアント。
とある地方の市役所は,自治体DXの進んだ自治体らしい。国だかなんかからも表彰とかもされているらしい。
けど,実態はクソ。
まずなにより,職員が業務で使うPCが令和対応できないまま令和になって2年以上放置されてたの。下手したらまだ対応してないPCが少なからずあるんじゃないか。役所なんて一番和暦を使うとこなのに,エクセルとかセルの書式設定で無理やり令和にしてたの。日付の書式を和暦にするんじゃなくて,日付を年と月日に分けて年の方に「"令和"」って入るようにするってことね。それが2年以上だよ。
それでも,RPAやらなにやら新しいものには手を出すから,DXの推進してる市ですとか対外的にはなってるの。うける。
市役所内でブーイングが出ないかと言われたら,出るんだけど評価する側の部署はさっさと新しくするけど,その他の部署は放置。外局や支所に至っては存在しない扱い。だから数年放置。評価する部署も,聞いたところで疎いから(頭が悪いから)へーそうなんだくらいにしか思わないわけ。だって自分たちは実務してないしさっさとアップデートしたから困った経験ないし。
当然Windowsのアップデートなんて「え?なにそれおいしいの?」って状態。サポート切れてますけど。でも,表彰されるの。
DXとかも,人力で機械様に都合のいいように相当数時間をかけて調整して,機械様がやってるとこだけを取り出して「これだけ効率化されました」とか発表したり取材させたり。そんな切り取られた部分しか表には出てこない。
RPAだってRPAを使うのが目的になってるから,継続利用できているのがほぼゼロ。複数のアプリケーションにまたがって使うならわからなくもないけど,集計につかってるの。説明会に参加した超大手企業の担当者も,RPAを使って各支店がCSVでダウンロードした売上データを分析の集計してんだって。「まじか,日本は大丈夫なわけ?」って聞いてて思ったよね。管理画面作るかCSVをダウンロードする際にその機能を提供してあげたほうがよっぽど効率化じゃないですかね…。行政にはわからんだろうという舐めた営業トークと思いたいけども,実際それで行政が導入してるわけだし営業トークとしては間違ってないんだろう。
そんなこんなで,業務改革のために各部局でRPAを導入しろって方針が出て,もう頭痛いの通り越したよね…。さすがにICTに詳しい非主流派から相当な突き上げ(というか単にどこも継続利用できてないと現実を開示しただけ)があったけど,もう対外的に先進地です〜ってなってるからどうにもできない状態。
なんでそうなるかって,まぁ(本当は知識のない)担当が上の人のお気に入りっていうのが一番で,かつ,担当も実態とは合わないけど財政部局の都合のいいことを言うから,財政部局も便利なんだよね。で,虚栄心の塊だから対外的に見栄えのするデジタル事業だけ金つっこみデジタルインフラ?なにそれ?状態でアップデートもできてないPCが溜まっていきネットワークも貧弱。修理や機器更新もせず壊れるの待ち。システム導入にするにしても同じ機能なんだから統一すればいいのに各部署でバラバラに導入。さらに,うんこみたいなシステムを導入する。これ行政相手じゃなかったら売り物になってないよね?っていうのが多数。
話がそれるけど,今だにIEのみ対応,画面遷移するたびに数秒またされるみたいなのを最近導入してんの。昔からあるならまだ許されるけど,最近ですよ。ほぼ全職員が使うシステムで画面遷移ごとに数秒待たされる損失ってどんなもんじゃい。業務改革とは?って思うけどまぁわからないよね。上の人たちには。で,先に書いたとおり,詳しい人達は邪魔だから非主流派になっていくの。
すげーな組織ってこう壊れていいくんだなと思って抜けさせてもらいました。
まぁ,組織が壊れたところで市役所がなくなることはないけども,行政サービスは落ちるだろうし中にいる人も一部以外は疲弊して優秀な人は抜けていくっていう負のスパイラルに陥るんだろうな。DX推進によって地方創生と逆の道をたどっていくのが皮肉というかなんというか。
でも,DXに限らず地方はそうやってずっと衰退いったのかもなって今は思ったりする。