我有一个如下的数据集

A B C
A1 1 1.3
A1 2 1.4
A1 3 1.3
A2 1 1.7
A2 2 1.6
A2 3 1.5
A1 1 1
A1 2 2.7
A1 3 2.4
A2 1 1.6
A2 2 1.7
A2 3 1.2

所需输出:

A 1 2 3
A1 1.3 1.4 1.3
A1 1 2.7 2.4
A2 1.7 1.6 1.5
A2 1.6 1.7 1.2

我try 了一个数据透视表,但它提供了聚合,而没有聚合数据透视,由于索引重复,它显示了一个重复的索引错误.处理这个问题的最佳方法是什么?

推荐答案

您可以使用元素数进行迭代(假设所有组合的元素数相同),如下所示:

dfx = df.pivot_table(index='A', columns='B', values='C', aggfunc=list)
pd.concat([dfx.applymap(lambda x:x[idx]) for idx in range(dfx.apply(lambda x: len(x)).max())])
A 1 2 3
A1 1.3 1.4 1.3
A2 1.7 1.6 1.5
A1 1 2.7 2.4
A2 1.6 1.7 1.2

旧答案:

查看示例数据帧,一个简单的数据透视应该可以:

df.pivot_table(index='A', columns='B', values='C', aggfunc='mean')

Python相关问答推荐

在输入行运行时停止代码

巨 Python :逆向猜谜游戏

比Pandas 更好的 Select

将链中的矩阵乘法应用于多组值

为什么t sns.barplot图例不显示所有值?'

如何获取包含`try`外部堆栈的`__traceback__`属性的异常

read_csv分隔符正在创建无关的空列

Django抛出重复的键值违反唯一约束错误

Numpy`astype(Int)`给出`np.int64`而不是`int`-怎么办?

突出显示两幅图像之间的变化或差异区域

将.exe文件从.py转换后出现问题.";ModuleNotFoundError:没有名为';Selify;的模块

从pandas框架中删除重复的子框架

如何在pandas DataFrame列中保持一个只增加的数字序列?

在给定区间列表的情况下计算不重叠对的数量的最佳方法

sklearn ridgeCV与ElasticNetCV

如何在JAX中训练具有多输出(向量值)损失函数的梯度下降模型?

如何验证像这样添加的对象属性:MyObj.newattribute=123

基于直方图箱的样本数据

卡方检验中的不同结果

回收Python对象ID对Pickler来说会是个问题吗?