問題タブ [data-munging]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - sqldf と R コード ベースの保守性
R で実質的な組織全体のコード ベースを構築している場合、データ変更タスクの既定のアプローチとして sqldf パッケージに依存することは許容されるでしょうか? それとも、可能であれば R 固有の構文を使用した操作に依存するのがベスト プラクティスですか? sqldf に依存することにより、かなりの量の異なる構文 SQL が R コード ベースに導入されます。
保守性とスタイルに特に関連して、この質問をしています。既存の R スタイル ガイドを検索しましたが、このテーマに関するものは見つかりませんでした。
編集: 私が関心のあるワークフローを明確にするために、次のように sqldf を十分に使用するデータ変更スクリプトを検討してください。
そして、そのようなスクリプトは何行も続く可能性があります。(Hadoop と PIG に精通している方にとっては、このスタイルは実際には PIG スクリプトに似ています)。複雑なサブクエリを回避できるという利点がありますが、ほとんどの作業は SQL 構文を使用して行われます。
python - パンダの describe メソッド出力をマージします
私は pandas を使用してデータ変更を行っていますが、基本的なマージのように見えるものを理解できないようです。基本的に、データセットには複数の describe メソッドがあります。describe メソッドの出力を以下に示します。この例では単純な数値を使用しました。列の名前は同じです (Metric4)。
これらをマージしたいのは、次のような出力を取得するためです。
2つを区別するために列名を変更したいと思いますが、現在抱えている主な問題はマージにあります。どんな助けでも大歓迎です。
python - パンダは異なる列を持つ2つのデータフレームをマージします
ここには確かに単純なものが欠けています。ほとんど同じ列名を持つ pandas の 2 つのデータフレームをマージしようとしていますが、右側のデータフレームには左側にない列がいくつかあり、その逆も同様です。
外部結合で結合しようとしました:
しかし、それは次の結果をもたらします:
また、結合する単一の列 ( , など) を指定しましたが、 ,などon = "id"
を除くすべての列が複製されます。これは理想的ではありません。また、列のリスト全体 (多数あります) を に渡しました。id
attr_1_x
attr_1_y
on
どちらが得られますか:
私は何が欠けていますか?attr_1
すべての行が追加されたdfattr_2
を取得したいと思いますattr_3
。可能な場合は NaN が表示されます。これは、データ変更のかなり典型的なワークフローのように思えますが、行き詰まっています。
前もって感謝します。
r - マージと一時的な data.tables の回避: 私のずさんな data.table コードの使用法を改善する
私は、参加者が 4 つの調査に自発的に回答するよう求められた縦断調査からの回答を集計しています。各参加者には固有の PartID があります。各参加者には SectionID (文字) が割り当てられます。試行されて完了した調査は、StatusID="Complete" で示されます。試行されたが完了していない調査は、StatusID="Incomplete" で示されます。調査を試みなかった参加者には記録がありませんが、結果の集計ではその調査の「0」としてカウントされます。
入力データの例:
次のコードは機能しますが、非常にずさんです。このデータ変更を達成するために data.table を使用する、よりクリーンでエレガントな方法があると思いますか? 特に、一時変数と、2 つの data.tables をマージする必要は避けたいと思います。
上記のコードによって得られる出力は正しく、次のとおりです (注: c1 は調査 #1 が完了したことを意味し、i1 は調査 #1 が未完了であることを意味します。また、参加者は調査ごとに複数の回答を送信する場合があることに注意してください)。
r - リストの各コンポーネントに対してデータ変更の手順を並行して実行する
2 つの data.table オブジェクトを含むリストがあります。アイデアを与えるために、1 つのテーブルには 400,000 行と 7 つの変数があり、別のテーブルには 750,000 行と 12 の変数があります。これらの 2 つのテーブルには同じ列がありません。私はそれらに対して多くの変更 (それぞれに異なる手順) を行います。変更手順には、合計の計算、集計値のパーセンタイルの検索、各グループのケース数、一意の長さなど (それぞれ 20 以上の手順) が含まれます。私が使うdata.table
これらの手順のパッケージ。ただし、それぞれに ~20 ステップ (合計で >40 ステップ) をすべて実行するには、少し時間がかかることがわかります。並列処理を使用してこれを高速化する方法を考えています。これらのステップは、リストのさまざまなコンポーネントで実行されるため、並行して処理できると思います。アイデアをブレインストーミングするために Google で徹底的な検索を行いましたが、役立つ情報は見つかりませんでした。誰かがこれをしましたか?少し光を当ててください、とても感謝しています。ありがとうございました
これまで、私はこれだけのことをしてきました。Result
2 つの data.table オブジェクトを含むリストです。fun1 と fun2 は、各 data.table オブジェクトで実行する必要がある一連の手順をまとめたものです。パフォーマンスに関しては、まだ何の改善も見られません(おそらくオーバーヘッドが原因ですか?わかりません)。
python - Pandas を使用して dict の 2 つのリストを共通の要素とマージする
だから私は辞書の2つのリストを持っています..
目標は、次のような最終的なデータセットを取得することです。
私のデータセットは特定の年の 12 か月間すべての多数の学生用であるため、データ変更に Pandas を使用しています。これが私が行った方法です。
最初に、 nameキーを使用して両方のリストを 1 つのデータフレームに結合します。
次に、傾向列をdictとして作成します
そして、to_dict(orient='records')
選択された列のメソッドを使用して、それを辞書のリストに変換します。
明らかなように、最終的なデータセットはまさに私が望むものではありません。両方の月が含まれる 2 つの辞書の代わりに、すべての月が別々の 4 つの辞書を取得します。これを修正するにはどうすればよいですか? この最終出力を使用して再度目的の状態に減らすよりも、Pandas 自体で修正することをお勧めします。