我有一个像元组的列表
data = [
('r1', 'c1', avg11, stdev11),
('r1', 'c2', avg12, stdev12),
('r2', 'c1', avg21, stdev21),
('r2', 'c2', avg22, stdev22)
]
我想将它们放入一个pandas DataFrame中,其中第一列命名的行和第二列命名的列.似乎照顾行名称的方法类似于pandas.DataFrame(数据中x为[x [1:]],数据中x为索引= [x [0]]但是我该如何处理获得2×2矩阵的列(前一组的输出是3×4)?是否有更智能的方式来处理行标签,而不是明确省略它们?
编辑似乎我需要2个DataFrames – 一个用于平均值,一个用于标准偏差,这是正确的吗?或者我可以在每个“单元格”中存储值列表吗?
解决方法:
您可以在创建后转动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