Python 从csv中删除冗余时间戳

Python 从csv中删除冗余时间戳,python,pandas,dataframe,csv,data-science,Python,Pandas,Dataframe,Csv,Data Science,我已经创建了一个CSV文件从不同的传感器使用熊猫数据帧记录。CSV文件基本上如下所示: 我想去掉多余的时间戳,而是让共享时间戳的所有传感器条目显示在同一行中(例如图像中的x2和x3)。 此外,共享时间戳的标签总是相同的,但也需要减少 到目前为止,我遇到了只删除整行的drop\u duplicate()函数 编辑:以下是上述示例的文本版本: timestamp,sensor_a,sensor_b,sensor_c,label 1,x1,,,0 2,,x2,,0 2,,,x3,0 3,x4,,,1

我已经创建了一个CSV文件从不同的传感器使用熊猫数据帧记录。CSV文件基本上如下所示:

我想去掉多余的时间戳,而是让共享时间戳的所有传感器条目显示在同一行中(例如图像中的x2和x3)。 此外,共享时间戳的标签总是相同的,但也需要减少

到目前为止,我遇到了只删除整行的
drop\u duplicate()
函数

编辑:以下是上述示例的文本版本:

timestamp,sensor_a,sensor_b,sensor_c,label
1,x1,,,0
2,,x2,,0
2,,,x3,0
3,x4,,,1
4,,,,1
5,,x6,,1
5,,,x7,1

我假设您将数据存储在文本文件
sensors.txt
中,因此我们可以根据以下代码基于
时间戳来合并数据

import pandas as pd

df = pd.read_csv('sensors.txt', delimiter=',', header=0)

df2 = df.groupby('timestamp').ffill()
df2['timestamp'] = df['timestamp']
df2 = df2.groupby('timestamp').bfill()
df2['timestamp'] = df['timestamp']
df2 = df2.drop_duplicates()

df = df2[['timestamp', 'sensor_a', 'sensor_b', 'sensor_c', 'label']]
print(df)
输出

   timestamp sensor_a sensor_b sensor_c  label
0          1       x1      NaN      NaN      0
1          2      NaN       x2       x3      0
3          3       x4      NaN      NaN      1
4          4      NaN      NaN      NaN      1
5          5      NaN       x6       x7      1
将根据您在下面评论中提出的问题进行进一步编辑


祝你好运

空白处的内容是什么?是``还是没有,还是别的什么?我认为最好像您一样以文本形式给出数据框。我仔细检查了我正在处理的真实数据帧-如文本示例中所示,空格是空的。