を抽出します。私は時間にわたりQUEUE
(ABC123
、DEF656
、FED456
)の種類ごとに平均TOTAL_SERVICE_TIME
とTOTAL_WAIT_TIME
を計算したいどのグループ行をすると、私は、次のデータ持っている平均値に
df =
QUEUE_1 QUEUE_2 QUEUE_3 HOUR TOTAL_SERVICE_TIME TOTAL_WAIT_TIME
ABC123 DEF656 7 20 30
ABC123 7 22 32
DEF656 ABC123 FED456 8 15 12
FED456 DEF656 8 15 16
を。
結果はこのようになります。
result =
QUEUE HOUR AVG_TOT_SERVICE_TIME AVG_TOT_WAIT_TIME
ABC123 7 21 31
ABC123 8 15 12
DEF656 7 20 30
DEF656 8 15 14
FED456 7 0 0
FED456 8 15 14
これは私の現在のコードですが、期待どおりの結果が得られていないようです。特に、HOUR
の値は順序付けされておらず、TOTAL_SERVICE_TIME
とTOTAL_WAIT_TIME
の平均値は正しく計算されていません。
cols = ['QUEUE', 'HOUR', 'TOTAL_SERVICE_TIME', 'TOTAL_WAIT_TIME']
result = pd.melt(
df, ['HOUR', 'TOTAL_SERVICE_TIME', 'TOTAL_WAIT_TIME'],
['QUEUE_1', 'QUEUE_2', 'QUEUE_3'],
value_name='QUEUE')[cols]
感謝。 'FED456'を' HOUR'に7にするにはどうすればいいですか?このような場合、 'TOTAL_SERVICE_TIME'と' TOTAL_WAIT_TIME'の値は0に等しくなければなりません。 – Dinosaurius
また、「KeyError: 'QUEUE」というエラーが表示されます。元のデータフレームに 'QUEUE_1'、' QUEUE_2'、 'QUEUE_3'があることに注意してください。この例で示したように、一意の値を持つ一意の列「QUEUE」を取得したいと考えています。 – Dinosaurius
私はまだ疑いが1つあります。 'result'を取得してからあなたのコードを実行するために、まずコードを実行する必要がありますか?私のオリジナルのデータフレームは 'df'と呼ばれていますが、コード内には' result'しかありません。申し訳ありませんが、私は最初にそれをうまく説明していません。 – Dinosaurius