スプレッドコマンダーのPowerShellとスプレッドシートのデータの解析

19906 ワード

免責事項:私はスプレッドコマンダーの著者です
SpreadCommanderは、データ分析のためのツールを備えたオフィスプログラムです.
スクリプトからの伝統的な出力はコンソールです.スプレッドコマンダーはリッチなコンソールに出力を提供します、すなわち、イメージ、チャートとより多くでフォーマットされた出力を許すコンソール.しかし、データ解析は表形式のデータを扱う必要がある.テーブルで動作する最も便利で一般的な方法は表計算ソフトです.リッチコンソールに加えて、SpreadCommanderのコンソールにはスプレッドシートコンソールが含まれており、スクリプト(データテーブル、リスト、コレクション)から出力データを直接スプレッドシートに挿入し、これらのデータを解析することができます.
この記事のデータはhttps://www.kaggle.com/heesoo37/olympic-history-data-a-thorough-analysis?select=athlete_events.csvからダウンロードされ、ダウンロードが必要です.

CMDDletアウトスプレッドテーブル


このCmdletは、データソースとしてオブジェクトのDataTable、リストまたはコレクションを取得し、スプレッドシートコンソール出力で新しいシートとテーブルを生成します.
$dt = Import-DelimitedText '~\Data\athlete_events.csv';

,$dt | Out-SpreadTable -SheetName:'Athlete Events' `
    -TableName:'Athlete Events' -TableStyle:Medium19 -Replace;

$dt | 
    group  -Property:'Sport' | 
    sort   -Property:'Count' -Descending |
    select -Property:@(
        @{ Label='Sport';        Expression = { $_.Name }},
        @{ Label='EventCount';   Expression = { $_.Count }},
        @{ Label='TeamCount';    Expression = { [Linq.Enumerable]::Count([Linq.Enumerable]::Distinct([Linq.Enumerable]::Select($_.Group, [Func[object, object]]{ $args[0].Team }))) }},
        @{ Label='AthleteCount'; Expression = { [Linq.Enumerable]::Count([Linq.Enumerable]::Distinct([Linq.Enumerable]::Select($_.Group, [Func[object, object]]{ $args[0].ID }))) }} ) |
    Out-SpreadTable -SheetName:'Sports' `
        -TableName:'Sports' -TableStyle:Medium19 -Replace `
        -Formatting: `
            "format table [Sports] column [EventCount] with IconSet=Signs3;
             format table [Sports] column [TeamCount] with Rule=DataBar, BackColor='LightGreen', BackColor2='LightGray', Gradient=Horizontal;
             format table [Sports] column [AthleteCount] with ColorScale='Red,LightGreen,White';
             format table [Sports] column [EventCount] with Rule=AboveAverage, BackColor=LightGreen";

データ内のコレクション(つまりDTの代わりにDT)を送信すると、CMDLETはDataSableの処理を行うことができます.そうでなければ、PowerShellはデータソースのデータソースをデータソースとして送信します.結果は同じですが、コレクションのバリアントはずっと速いです.

新しいスプレッドピボット


データがスプレッドシートに送信されると、異なる方法で分析することができます.これらの方法の1つはピボットテーブルを生成することである.スプレッドコマンダーPowerShellスクリプトからピボットテーブルを生成することができます.
New-SpreadPivot -DataTableName:'Athlete Events' `
    -PivotSheetName:'Athlete Events - Pivot' -PivotTableName:'Athlete Events - Pivot' `
    -RowFields:'Team' -ColumnFields:'Sport' -DataFields:'ID' -SummarizeValuesBy:Count `
    -Layout:Outline -MergeTitles -Style:Medium19 `
    -Formatting:'format with DataBar=Red, Gradient=true' -Replace;

新しいSimpleSpreadChart、新しいスプレッドチャート


データを分析する別の方法は、スプレッドシートにグラフを追加することです.SpreadCommanderは、チャートを追加する2つのCmdletsを持っています- 1つはより簡単な構文を持ちます、もう一つはより強力です.
New-SimpleSpreadChart -DataTableName:'Sports' `
    -ChartSheetName:'Sports - SimpleChart' -Replace -ChartType:LineMarker `
    -Arguments:'Sport' -Values:'EventCount','TeamCount','AthleteCount' `
    -AxisGroups:'Primary','Secondary','Primary' `
    -SeriesTypes:LineMarker -Style:ColorGradient `
    -Title:'Sport - Chart' -TitleFont:'Tahoma,12,Bold,Italic';

New-SpreadChart -DataTableName:'Sports' `
    -ChartSheetName:'Sports - Chart' -Replace `
    -ChartType:LineMarker -Style:ColorGradient -BackColor:Beige `
    -Title:'Sports' -TitleFont:'Segoe,12,Bold,Italic,Blue' `
    -Series:@(
        @{Name='Events'; Arguments='Sport'; Values='EventCount'; Type='LineMarker'}, `
        @{Name='Athletes'; Arguments='Sport'; Values='AthleteCount'; Type='LineMarker'}, `
        @{Name='Teams'; Arguments='Sport'; Values='TeamCount'; Type='LineMarker'; AxisGroup='Secondary'} );


現在、新しいSpreadChartのタイトルを正しく正しく動作しない、次のバージョンで修正されます

スプレッドシートの新機能


SpreadCommanderスプレッドシートにいくつかの新しい機能を追加します.これらの新しい関数はスプレッドシートに多くのパワーを追加します.特に正規表現に関連した有用な関数であることがわかりました.これらの関数は、スプレッドコマンダーに固有で、マイクロソフトExcelでは動作しません.
正規表現
レーシック.アイマッチ
正規表現が一致するかどうかを示す
を指定します.レーシック.マッチ
指定した入力文字列を最初の
正規表現の.レーシック.マッチ
配列関数.指定した入力文字列を検索する
(配列のサイズまで)正規表現の出現.レーシック.名前マッチ
指定した入力文字列を最初の
指定したグループの正規表現と戻り値の値.レーシック.名前マッチ
配列関数.指定した入力文字列を検索する
(配列のサイズまで)正規表現の出現
指定したグループの値を返します.レーシック.置換
指定した入力文字列内で
指定した正規表現パターンにマッチします
置換文字列.レーシック.スプリット
指定した入力文字列を
正規表現パターンで定義されます.文字列
  • 文字列.フォーマット
    指定された文字列内の
    を指定します.
  • ハッシュ
    ハッシュ.MD 5
    文字列のmd 5ハッシュを計算します.ハッシュ.SHA 1
    文字列のSHA - 1ハッシュを計算します.ハッシュ.SHA 256
    文字列のSHA - 256ハッシュを計算します.ハッシュ.SHA 384
    文字列のSHA - 384ハッシュを計算します.ハッシュ.SHA 512
    文字列のSHA - 512ハッシュを計算します.パス
    経路.変更機能拡張
    パス文字列の拡張を変更します.経路.組み合わせ
    複数の文字列をパスに結合します.経路.getDirectoryName
    指定したパス文字列のディレクトリ情報を返します.経路.getextension
    指定したパス文字列の拡張を返します.経路.getfilename
    指定したパス文字列のファイル名と拡張子を返します.経路.拡張モジュールのgetFileName
    拡張子なしで指定したパス文字列のファイル名を返します.ガス
  • newid
    GUID形式の新しいインスタンスを返します
    オプションの書式指定子( n , d , b , p , x ).
  • 書式設定


    スプレッドシートとグリッドに出力する条件の書式設定を指定することができます.
    format table [Athlete Events] column [Event] for "Contains([Event], 'Gymnastics')" with BackColor=Green, ForeColor=White;
    format table [Sports] column [EventCount] with IconSet=Signs3;
    
    サポート
    表現
  • フォーマットされるべき行を選択する条件を決定します.
  • format table [Athlete Events] column [Event] for "Contains([Event], 'Gymnastics')" with BackColor=Green, ForeColor=White;
    
    データベース
  • データベースを使用して形式を適用します.棒の長さの変化は、セルの値に対して順に変化する.
  • format table [Sports] column [TeamCount] with Rule=DataBar, BackColor='LightGreen', BackColor2='LightGray', Gradient=Horizontal;
    
    iconset
  • Iconset範囲に値を分類し、範囲に応じて特定のアイコンを表示することができます.
  • format table [Sports] column [EventCount] with IconSet=Signs3;
    
    カラースケール
  • は、2または3色のグラデーションを使用してデータ配布および変化をdisploayすることを可能にする.
  • format table [Sports] column [AthleteCount] with ColorScale='Red,LightGreen,White'
    
    平均値、平均値、oberoralal平均、beloworequalmean、ユニーク、複製
    値が指定された条件に対応するならば、
  • はフォーマットを適用します.
  • format table [Sports] column [EventCount] with Rule=AboveAverage, BackColor=LightGreen
    
    上記の条件は大きなテーブルで遅くなります.
    トップ、ボトム
    値がtopまたはbottom n値に属しているなら、
  • 形式を適用します.Nは、数またはパーセントでありえます.
  • format table [Sports] column [Weight] with Rule=Top, Rank='10%', BackColor=LightGreen
    
    上記の条件は大きなテーブルで遅くなります.
    データ発生
    値が今日に関連して特定の日付または日付間隔に言及するならば、
  • はフォーマットを適用します.
    日の間には、BeyondthisYear、以前の、初期の月、初期の月、初期の年を含んでいます.
    空、LastWeek、LatthisisYear、LatthisisYear、monthafter 1、Monthafter 2、Monthago 1、Monthago 2、
    モンタゴフ3、モンタゴガモ、モンタゴゴ5、モンタゴゴ6、NextWeek、Priorthisyear、仕様、Thismonth、THISHUNTER
    今日、明日、ユーザー、昨日.
  • format table [Table1] column [Value] with DateOccuring=Today, BackColor=Yellow
    
    ルール比較
    値が指定された比較条件に会うならば、
  • はフォーマットを適用します.
    比較タイプは、式、より大きい、GreenerorEqualsの間に含みます.
    以下、lessという意味です.
  • format table [Athlete Events] column [Season] with Condition=Equal, Value1='Summer', BackColor=Green, ApplyToRow=true
    
    ほとんどの書式条件>(Databar、IconSet、ColorScaleを除く)サポートプロパティを指定する
    これらのプロパティの外観
  • バックカラー
  • BackColor 2 (グラデーションで使用する)
  • ボーダーカラー
  • フォント
  • グラデーション(バックカラー2 >を必要とします.次の値のいずれかです.水平、垂直、前方斜め、backwarddiagonal )