我有长格式的数据,正在尝试将其重新调整为宽格式,但似乎没有一种简单的方法可以使用熔化/堆叠/取消堆叠来实现这一点:
Salesman Height product price
Knut 6 bat 5
Knut 6 ball 1
Knut 6 wand 3
Steve 5 pen 2
变成:
Salesman Height product_1 price_1 product_2 price_2 product_3 price_3
Knut 6 bat 5 ball 1 wand 3
Steve 5 pen 2 NA NA NA NA
我想斯塔塔可以用整形命令做这样的事情。
有点老了,但我会把这个发给其他人。
你想要的可以实现,但你可能不应该想要;) Pandas支持行和列的层次索引。 在Python2.7.x中。。。
生成一个可能比您要查找的更方便的表示
使用set_index和unstacking相对于单个函数作为pivot的优势在于,您可以将操作分解为清晰的小步骤,从而简化调试。
一个简单的支点可能足以满足您的需要,但这就是我为重现您所需的输出所做的:
只需添加一个组内计数器/索引,就可以实现大部分功能,但列标签将不符合您的要求:
为了更接近您想要的输出,我添加了以下内容:
编辑:如果你想把这个过程推广到更多的变量,我想你可以做如下的事情(尽管它可能不够有效):
您可以,但我认为您还需要一个组内计数器来在stata中进行整形,以获得所需的输出:
如果您添加
idx
,则可以在stata
中进行整形:这是另一个更加充实的解决方案,取自Chris Albon's site。
创建“long”数据帧
生成“宽”数据
相关问题 更多 >
编程相关推荐