問題タブ [pandas]

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.

0 投票する
2 に答える
10432 参照

python - 日時を使用してデータフレームのスライスを実行するにはどうすればよいですか?

pandas.DataFrame df1オブジェクトでインデックス付けされた、がありますpandas.DateRange

d1日時としてとを持っている場合d2、なぜ機能しdf[d1:d2]ないのですか?このスライスを取得するにはどうすればよいですか?

0 投票する
1 に答える
1504 参照

python - 異なるチャンクで構成される pandas.DataFrame を構築する最良の方法

バッチで毎日のシミュレーションを実行しています。1 年間の結果を得るために 365 回のシミュレーションを実行しています。毎回実行した後、結果からいくつかの配列を抽出し、後で分析するためにそれらを pandas.DataFrame に追加したいと考えています。

大まかなモデル (最適化を行う) と、シミュレーション後のより正確なモデルがあるため、2 つのソースから同じ変数を取得できます。事後シミュレーションが行われた場合、その結果が最適化結果を上書きする可能性があります。
さらに複雑にするために、離散化設定に応じて、最適化モデルの出力間隔は短くなりますが、最終的な分析はシミュレーション後のより大きな間隔で行われます)。

この DataFrame を構築する最良の方法は何ですか?

これが私の最初のアプローチでした:

  1. シミュレーション後の間隔が大きい (=15 分) インデックスを使用して、DataFrame df年間の空欄を作成します。DateRange
  2. 最適化を 1 日間行う ==>より短い間隔df_tempでas index を使用して一時的に作成するDateRange
  3. ここで説明されているように、これDataFrameを 15 分にダウンサンプリングします。
  4. で更新dfdf_tempます(df前回の実行の最後の行を除いて、行はまだ空であるため、取得する必要がありますdf_temp[1:]
  5. 同日のシミュレーションを実行 ==>df_temp2間隔 = 15 分で一時的に作成
  6. で対応する行を上書きしdfますdf_temp2

ステップ 4) と 6) ではどの方法を使用すればよいですか? または、最初からより良い方法はありますか?ありがとう、ロエル

0 投票する
2 に答える
11084 参照

python - psycopg2 を使用した pandas DataFrame の Postgres DB への高速挿入

最も効率的な方法で(Python 2.7を使用して) pandas DataFrameをPostgresql DB(9.1)に挿入しようとしています。
「cursor.execute_many」を使用すると、「copy_from」と一緒に「DataFrame.to_csv(buffer,...)」を使用すると非常に遅くなります。
もうたくさん見つけました!パンダで動作するように適応させたWeb上のより高速なソリューション(http://eatthedots.blogspot.de/2008/08/faking-read-support-for-psycopgs.html )。
私のコードは以下にあります。
私の質問は、この関連する質問の方法(「バイナリで標準入力からコピー」を使用)を簡単に転送してDataFrameを操作できるかどうか、およびこれがはるかに高速かどうかです。
psycopg2 でバイナリ COPY テーブル FROM を使用する
残念ながら、私の Python スキルは、このアプローチの実装を理解するには不十分です。
これが私のアプローチです:

0 投票する
6 に答える
17550 参照

python - pandas - 別の列によってインデックス付けされた特定の列の最新の値を取得します (別の列によってインデックス付けされた特定の列の最大値を取得します)

次のデータフレームがあります。

このデータのサブセットを取得して、それぞれの最新 (最大'data_date')のみを取得したいと考えています。'value''obj_id'

解決策をハックしましたが、汚いと感じます。誰かがより良い方法を持っているかどうか疑問に思っていました。パンダを介してそれを行う簡単な方法が欠けているに違いないと確信しています。

私の方法は基本的に、次のようにグループ化、ソート、取得、および再結合することです。

0 投票する
1 に答える
212 参照

pandas - Series オブジェクトと DataFrame オブジェクトには、どのような追加データが格納されますか?

メモリのオーバーヘッドができるだけ低くなるように、パンダを構成またはパッチすることに興味があります。実験では、それぞれ 5000 万の uint32 値を含む 2 つの numpy 配列を作成しました。これらの配列を numpy 形式で保存するには、200 + 200 = 400 M バイトが必要です。配列の 1 つを Series オブジェクト (index=None) にラップすると、最大 600 MB のメモリが消費されます。2 つの配列を DataFrame オブジェクト (インデックス = なし) にラップすると、メモリ要件は ~1600 M バイトになります。

追加のメモリ要件は、Series ストレージでは #rows * 8 バイト、DataFrame ストレージでは #rows * (#columns + 1) * 8 バイトのようです。numpy元の配列と一緒に Series と DataFrame オブジェクトに格納されている余分なデータを正確に説明できますか?

0 投票する
3 に答える
20178 参照

python - Python Pandas を使用して特定の日時インデックスの後に最も近い単一の行を取得する方法

私が持っているデータフレーム:

私が今使っているもの:

これを行うより良い方法はありますか?.ix[0] の代わりに .ix[0:1] を指定する必要があるのは好きではありませんが、そうしないと、出力が DataFrame の単一行ではなく TimeSeries に変更されます。回転した TimeSeries を元の DataFrame の上に戻すのは難しいと思います。

なし.ix[0:1]:

ありがとう、

ジョン

0 投票する
1 に答える
1058 参照

parsing - パンダ日付コンバーター

Pandasでファイルを読み取るときに、ファイルの日付を解析するのに問題があります。

私はpython(x、y)バージョン2.7を使用しています。

私が読み込もうとしているファイルの形式は次のとおりです。

次のコード行を使用します。

出力は次のとおりです。

日付は解析されません。また、日付を使用してあらゆる種類の計算を実行しようとすると、エラーが発生します。私はコンバーターの使い方がわからないので、本当にあなたの助けを借りることができます。

0 投票する
3 に答える
3571 参照

python - Pythonパンダでcsvを読み取り、不正な値を処理する

パンダを使用してcsvファイルを読み取っています。データは数字ですが、テキストとしてcsvファイルに保存されます。一部の値は、不良または欠落している場合は数値ではありません。これらの値をフィルターで除外し、残りのデータを整数に変換するにはどうすればよいですか。

isdigit()すべての値をループして、それらが数値であることをテストするために使用するよりも、より良い/より速い方法があると思います。

パンダやnumpyには、リーダーの悪い値を認識する方法がありますか?そうでない場合、それを行う最も簡単な方法は何ですか?これを機能させるには、dtypeを指定する必要がありますか?

0 投票する
2 に答える
3922 参照

python - パンダのデータフレームに積み重ねられたバープロットをプロットする

これは、pyconでWesleyのチュートリアルに参加した後、Pandasライブラリで遊ぶ最初の試みです。

データフレームを少し調べた後、思い通りにデータをマッサージできて良かったのですが、プロットに問題がありました。また、matplotlibライブラリの素朴さも示していると思います。

私が持っているのは、次のデータを持つpandasSeriesオブジェクトです。ラベルが垂直方向に配置されている列1(「ファイル」)を使用して棒グラフとしてプロットしたいと思います。

0 投票する
1 に答える
434 参照

python - パンダ:同じインデックスを持つ2番目のシリーズを使用して1つのシリーズを変更します

最近、私はパンダの2つのシリーズでいくつかの作業を行っています。

  • 最初のシリーズには、純粋な数値データが含まれています
  • 2番目のシリーズには、「プラス」、「マイナス」、およびNaNのカテゴリデータが含まれています。

データ例:

(実際のシナリオでは、2番目のシリーズは最初のシリーズと同じインデックスを使用してプログラムで構築されていますが、ここでは単純化した例にすぎません)

私は最初にいくつかの操作を行っています:

NaN次に、対応する「マイナス」エントリの符号を反転(-1で乗算)し、2番目のシリーズのエントリに目を向ける必要がありNaNます。

後者の部分は問題なく機能します。

しかし、私は前の部分に少しこだわっています。2番目のシリーズの情報を使用して(同じインデックスが付けられている場合)、最初のシリーズの符号を切り替えるにはどうすればよいですか?

参考までに、アプリケーションの後、first_seriesは次のようになります。