Python Pandas Dataframe:将一行中的数据复制到具有相同值的多行,并合并行



我一直试图创建一个脚本来清理一些数据,但遇到了问题,无法找到信息。我也可能在寻找错误的东西。

我有一个CSV,其中包含大量列和行的数据。我正在尝试将行合并在一起。每个"Repeat_Instance"应该只有一行,而空的"Repeat_Instance"行需要在另一行中。除了ID的第一行需要复制到具有相同ID的后续行之外,我主要通过使用pandasgroupby命令来实现它。

以下是数据帧/表的一个简短示例:

数据输入第一重复实例>数据_评估C1Y
Record_ID Repeat_Name 重复实例数据_检查_当前
1
1 check_current 1 B
1 check_current 2
1 评估
2 Z
2 check_current
2 评估 1 X
评估

您可以使用前向填充函数ffill将第一行中的DataInFirstRepeatName信息传播给其他信息。完成此操作后,只需删除每组中的第一行(可以使用例如合适列上的dropna来完成(。

df['DataInFirstRepeatName'] = df.groupby('Record_ID')['DataInFirstRepeatName'].ffill()
df = df.dropna(subset=['Repeat_Name'])

然后应用其他行合并逻辑(此处为first(:

df.groupby(['Record_ID', 'Repeat_Instance']).first().reset_index()

结果:

Record_ID  Repeat_Instance    Repeat_Name DataInFirstRepeatName Data_In_check_current Data_In_Assessment
0          1              1.0  check_current                     A                     B                  D
1          1              2.0  check_current                     A                     C               None
2          2              1.0  check_current                     Z                     Y                  X
3          2              2.0     assessment                     Z                  None                  V

最新更新