簡體   English   中英

從 csv 中刪除冗余時間戳

[英]Remove redundant timestamps from csv

我使用 pandas DataFrame 從不同傳感器的記錄中創建了 CSV 文件。 CSV 文件基本上是這樣的:

csv 文件的樣子,簡化

我想擺脫多余的時間戳,而是讓所有共享時間戳的傳感器條目出現在同一行中(例如圖像中的 x2 和 x3)。 此外,共享時間戳的標簽始終相同,但也需要減少。

到目前為止,我遇到了drop_duplicate() function ,它只刪除整行。

編輯:這是上面示例的文本版本:

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中,因此我們根據以下代碼根據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)

output

   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

進一步的編輯將基於您在下面的評論中的問題

祝你好運

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM