首页 > 解决方案 > 使用 Python 从原始数据创建新的正确时间数据集

问题描述

首先,如果这个问题已经被问过,我很抱歉,但我相信我的挑战已经足够具体了。我不是在寻找完整的答案,而只是关于如何进行的指导。

  1. 首先,我有一个监控参与者的原始数据集。这些数据包括收入、储蓄等……这些参与者已被跟踪 6 个月(1 月至 6 月)。但是数据存储在一个完整的 Excel 文件中,其中有一列指定月份,这意味着一个参与者的姓名在文件中出现 6 次,每个月一个。每个参与者都有一个唯一的 ID。

  2. 我想以一种更可行的方式转换这些数据,我想学习用 Python 来做。但后来我感到卡住和生锈,因为我编码已经很久了,而且我只习惯于我定期使用的代码(打印分组平均值等......);这是我要遵循的步骤:

一个。首先创建一个列,其中包含已使用 ID 跟踪的参与者的唯一列表。每个参与者只能被引用一次;

湾。每个参与者都在原始文件中记录了一个活动和子活动类型,这也需要添加到新数据集中;

C。例如,对于 1 月份,我想创建一个“january_income”列,其中从原始数据集中拖出 1 月份的收入,以此类推每个变量和每个月。

任何人都可以提供有关我如何进行的指导吗?正如我所说,它不必是特定的代码,它可以是方法或步骤以及我可以使用的功能。

已经非常感谢了。注意:我使用 Spyder 作为工作环境。

标签: pythonexcelspyderxlsxdata-transform

解决方案


谢谢你的笔记。首先,如果我的帖子不具体,我很抱歉,感谢您在社区中发起我。自从我发表第一篇文章以来,我一直在努力处理我的数据,并且根据我对语言的实际了解,我所能想出的只是一个过滤代码,如下面的代码所示。这让我可以为每个月的每个数据创建一个列,但我遇到了两件事:首先,我必须为每个月重复此代码并更改标签中的月份。如果我不必面对另一个问题,我不会介意这种方法:这没有考虑到某些参与者在某些月份没有被跟踪的事实,这意味着即使数据是根据 ID 号排序的, 列之间存在不匹配,因为它们的长度根据该月跟踪的参与者数量而变化。现在我希望通过添加一行来优化这段代码,这可以让我解决我的第二个问题(此时我不介意代码是否很长,但如果可以进行优化,我也对它开放):

os.chdir("XXXXXXX")
economique = pd.read_csv('data_economique.csv')
#JANVIER
ID_jan = economique.query("mois_de_suivi == 'Janvier'")["ID"]
nom_jan = economique.query("mois_de_suivi == 'Janvier'")["nom"]
sexe_jan = economique.query("mois_de_suivi == 'Janvier'")["sexe"]
district_jan = economique.query("mois_de_suivi == 'Janvier'")["district"]
activite_jan = economique.query("mois_de_suivi == 'Janvier'")["activite"]
CA_jan = economique.query("mois_de_suivi == 'Janvier'")["chiffre_affaire"]
charges_jan = economique.query("mois_de_suivi == 'Janvier'")["charges"]
resultat_jan = economique.query("mois_de_suivi == 'Janvier'")["benefice"]
remb_attendu_jan = economique.query("mois_de_suivi == 'Janvier'")["remb_attendu"]
remb_effectue_jan = economique.query("mois_de_suivi == 'Janvier'")["remb_effectue"]
remb_differe_jan = economique.query("mois_de_suivi == 'Janvier'")["calcul_remb_differe"]
epargne_jan = economique.query("mois_de_suivi == 'Janvier'")["calcul_epargne"]

推荐阅读