次のようなデータフレームがあります。
date session time x1 x2 x3 x4 x5 x6
2015-05-22 1 morning Tom 129 1 129 45 67
2015-05-22 1 morning Kate 0 1 670 89 34
2015-05-22 1 noon GroupeId 0 1 45 56 13
2015-05-26 2 noon Hence 129 1 167 7 13
2015-05-26 2 evening Kate 0 987 876 478
2015-05-26 3 night Julie 0 1 567 8
したがって、各セッションの列ごとの平均値と最大値を計算する必要があります。つまり、各セッションの値の平均をX2にする必要があります(例では1番目、2番目、または3番目ですが、実際のデータフレームでははるかに多くの行とセッションがあります)。 X4の値x4の最大値、各セッションの値x3の合計。いくつかの列の平均について多くの例を見つけましたが、ご覧のとおり、それは私が探しているものではありません。私は次のようないくつかの方法を試しました:multi_df.groupby(level=1).sum().to_csv('output.csv', sep='\t')
これを使って作成しようとしたマルチレベルデータフレームのmulti_df=df.set_index(['session','index'], inplace=False)
場合、それは私に感覚を与える可能性のある結果を与えません
ですから、私が探しているようなアドバイスや変革の例はありがたいです。
このようなものをお探しですか?(つまり、列ごとに特定の関数で集計する方法はありますか?)。
import pandas as pd
import numpy as np
df = pd.io.parsers.read_csv('temp.txt', sep = '\t')
df_agg = df.groupby('session').agg({
'x2' : np.mean,
'x3' : np.sum,
'x4' : np.min,
})
# you can apply more than one function to a column like so:
df_agg_multifunc = df.groupby('session').agg({
'x2' : [np.mean, np.std],
'x3' : [np.sum, np.std],
'x4' : [np.min, np.std],
})
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加