1. ホーム
  2. python

[解決済み] 行、列、値のタプルのリストからpandasのDataFrameを構築する。

2023-07-09 09:18:09

質問

以下のようなタプルのリストがあります。

data = [
('r1', 'c1', avg11, stdev11),
('r1', 'c2', avg12, stdev12),
('r2', 'c1', avg21, stdev21),
('r2', 'c2', avg22, stdev22)
]

で、それらをpandasのDataFrameに入れ、行は1列目で、列は2列目で名前を付けたいと思います。行の名前の世話をする方法は、次のようなものだと思われます。 pandas.DataFrame([x[1:] for x in data], index = [x[0] for x in data]) しかし、私は2x2の行列(前のセットからの出力は3x4です)を得るために列の世話をするにはどうすればよいですか?行のラベルを明示的に省略するのではなく、同様に行のラベルの世話をする、よりインテリジェントな方法があるのでしょうか?

EDIT 平均値用と標準偏差用の2つのDataFrameが必要なようですが、正しいですか?または、各セルに値のリストを格納することができますか?

どのように解決するのですか?

DataFrameを作成した後、ピボットを行うことができます。

>>> df = pd.DataFrame(data)
>>> df.pivot(index=0, columns=1, values=2)
# avg DataFrame
1      c1     c2
0               
r1  avg11  avg12
r2  avg21  avg22
>>> df.pivot(index=0, columns=1, values=3)
# stdev DataFrame
1        c1       c2
0                   
r1  stdev11  stdev12
r2  stdev21  stdev22