Python中从长到宽的转换类似于IBM SPSS数据将案例重新构造为变量

2024-05-16 22:58:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个数据集中有一组相关的案例,我想重新排列这些案例,这样,由数字和非数字数据组成的数据在结果数据框中表示为一个案例。基本上,随着时间的推移,我对同一主题进行了多次测量,因此我的数据集中存在重复的ID号。此外,不需要聚合重新构造的数据

在SPSS中,我将使用以下代码(link to SPSS function)

CASESTOVARS  
  /ID=PropertyLocation
  /GROUPBY=INDEX.

结果类似于下图,其中与每个案例相关联的变量已添加为新变量,变量名称中包含一个计数(案例1的示例“date”变量为“date”。“date.1”用于在案例1的稍后时间执行的第二次观察)

enter image description here

在Python中,我尝试使用df.pivot_表,但它聚合了我的数值,而没有显示我的非数值数据

enter image description here

我的Python代码如下所示:

reshaped_sales = sales_data_cleansed_2.pivot_table(index="Property Location", columns="sales_index")

“sales_index”列只是每个案例的每个重复测量的计数。并不是所有情况都重复测量相同的次数

以下是示例数据集https://drive.google.com/file/d/1Q56bVaLCxfY5jF1C0vhVEmpMtyq7dQif/view?usp=sharing

提前感谢您的帮助


Tags: 数据代码id示例主题dateindex时间