【发布时间】:2021-08-25 15:49:09
【问题描述】:
需要帮助将多行数据与多列的各种数据类型合并
我有一个包含 14 列和 x 行数据的数据框。数据框的示例切片链接如下:
我的数据框的当前示例
我希望能够根据“工单”列将所有四行数据合并为一行。请参阅下面的链接图片。我目前正在使用 pandas 从四个不同的数据源获取数据,并根据每个工单号创建一个包含我想要的所有相关数据的数据框。我尝试了各种方法,包括groupby、merge、join等,但没有任何好的结果。
我希望我的数据框最终看起来如何
我基本上想按工作订单值进行分组,将所有站点名称合并为一个值,然后将所有数据基本上压缩为一行。如果列中有相同的数据,那么我只想将它合并在一起。如果列中有不同的值(例如在“Operator Ack Timestamp”中),那么我不介意数据是连续的数据字符串(例如,同一单元格中的下一个日期之后的一个日期)。
示例数据框数据:
df = pd.DataFrame({'Work Order': [10025,10025,10025,10025],
'Site': ['SC1', 'SC1', 'SC1', 'SC1'],
'Description_1':['','','Inverter 10A-1 - No Comms',''],
'Description_2':['','','Inverter 10A-1 - No Comms',''],
'Description_3':['Inverter 10A-1 has lost communications.','','',''],
'Failure Type':['','','Communications',''],
'Failure Class':['','','2',''],
'Start of Fault':['','','2021-05-30 06:37:00',''],
'Operator Ack Timestamp':['2021-05-30 8:49:21','','2021-05-30 6:47:57',''],
'Timestamp of Notification':['2021-05-30 07:18:58','','',''],
'Actual Start Date':['','2021-05-30 6:37:00','','2021-05-30 6:37:00'],
'Actual Start Time':['','06:37:00','','06:37:00'],
'Actual End Date':['','2021-05-30 08:24:00','',''],
'Actual End Time':['','08:24:00','','']})
df.head()
【问题讨论】:
-
请以文本而非图像的形式包含数据样本,以便人们实际使用它们。这个page 可能会有所帮助。
-
@joao 刚刚添加了数据框数据
标签: python-3.x pandas dataframe group-by merge