【问题标题】:Remove redundant timestamps from csv从 csv 中删除多余的时间戳
【发布时间】:2021-04-09 15:00:19
【问题描述】:

我使用 pandas DataFrame 根据不同传感器的记录创建了一个 CSV 文件。 CSV 文件基本上是这样的:

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

到目前为止,我遇到了只删除整行的 drop_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

【问题讨论】:

  • 空格的内容是 `` 还是 None 还是什么?我认为最好像您一样以文本形式提供数据框。
  • 我将示例添加为文本。我仔细检查了我正在处理的真实数据框 - 空白空间就像文本示例一样是空的。

标签: python pandas dataframe csv data-science


【解决方案1】:

我假设你将数据存储在一个文本文件sensors.txt中,所以我们根据下面的代码在timestamp的基础上合并数据

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

将根据您在下面 cmets 中的问题进行进一步编辑

祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2020-11-19
    • 2020-07-23
    • 1970-01-01
    • 2018-05-04
    • 2018-06-27
    相关资源
    最近更新 更多