我在下面有一个数据框架,我正在努力重塑它。我已经找到了如何做的方法,但是我得到了多个答案,当尝试实现获取错误时,因为有重复的索引,或者我只得到一个宽行的数据帧。我一直在尝试的选项是unstack、pivot和ravel。在不迭代行的情况下,什么是最好和最简单的重塑方法?我知道我可以解决这个问题,但我也知道有更好的方法。
为了清晰起见,我提供了一个屏幕截图,展示了我所拥有的以及我正在尝试做的事情:
这是我的(但有几千排)
我试图将具有相同客户、周和类型的行移到一行中:
看起来像这样:
编辑:按照下面的要求,只是一个数据集的快速样本。我应该从一开始就提供。
导入熊猫为pd
D='客户':['store_a']*12,
'class':['1a'、'1a'、'2b'、'2b'、'3c'、'3c']*2,
'周':['08/19/2018','08/26/2018']*6,
'类型':['食物']*6+['饮料']*6,
'值':[无,无,1,1.5,1.1,1.2,无,无,0.96,0.70,0.96,0.96]
测试数据框(数据=d)
< /代码>
为了清晰起见,我提供了一个屏幕截图,显示了我所拥有的以及我正在尝试做的事情:
这是我的东西(但有几千排)
我试图将具有相同客户、周和类型的行移到一行中:
看起来像这样:
编辑:按照下面的要求,只是一个数据集的快速样本。我应该从一开始就提供。
import pandas as pd
d = {'Customer': ['Store_A']*12,
'Class': ['1A','1A','2B','2B','3C','3C']*2,
'Week':['08/19/2018','08/26/2018']*6,
'Type':['Food']*6 + ['Beverage']*6,
'Value': [None,None,1,1.5,1.1,1.2,None,None,0.96,0.70,0.96,0.96]}
test_df = pd.DataFrame(data=d)