[英]How to Label data multiple csv files as single observation in python for machine learning
我已經開始了一個機器學習項目,我現在處於數據准備和標記階段。 在我的測量設置中,我有 4 個傳感器以毫秒為單位記錄數據。 然后將該數據存儲為 csv 文件作為單一觀察。 例如,安裝在身體不同部位的 4 個傳感器檢測人的姿勢,如"sitting"
或"standing"
。 數據記錄了不同的持續時間,因此每個文件都以姿勢和持續時間命名,例如sitting_3_hours.csv
、 sitting_2min.csv
等。現在我想准備數據以應用監督機器學習方法來分類人是否坐着或站立。
如何 label 這些 csv 文件? 我可以在 python 中做到嗎? 或者我必須使用某種注釋或標簽工具? 到目前為止,我已經體驗過單個 csv 文件,其中有一列包含所有標簽,如鳶尾花數據庫。
這是數據集外觀的一個小例子。
- Folder name "Sitting"
-------------Sitting_200s.csv
.............Sitting_100s_elevated.csv
-------------Sitting_200s_elevated.csv
- Folder name "Standing"
-------------Standing_8s.csv
.............Standing_29s_elevated.csv
-------------Standing_86s_elevated.csv
每個 csv 文件中的數據以逗號分隔,如下所示(Sitting_100s_elevated.txt 的示例):
Time [s], Sensor1, Sensor2, Sensor3, Sensor4, Sensor5, Sensor6, Sensor7, Sensor8, Sensor9, Sensor10, Sensor11, Sensor12, Sensor13
+0.0, 0.0, 0.09, 0.0, 25.22, 28.5, 833.0566, 0.49, 0.0, 0.0, 0.31, 102037.0, 23.72, 38.39
+1.0, 0.0, 0.09, 0.0, 25.22, 28.5, 834.668, 0.45, 0.0, 0.0, 0.28, 102037.0, 23.72, 38.39
+2.0, 0.0, 0.09, 0.0, 25.22, 28.5, 831.4453, 0.38, 0.0, 0.0, 0.31, 102037.0, 23.72, 38.39
+3.0, 0.0, 0.09, 0.0, 25.22, 28.5, 834.668, 0.47, 0.0, 0.0, 0.31, 102037.0, 23.72, 38.38
+4.0, 0.0, 0.09, 0.0, 25.22, 28.5, 829.834, 0.41, 0.0, 0.0, 0.28, 102037.0, 23.72, 38.4
+5.0, 0.0, 0.09, 0.0, 25.21, 28.5, 833.0566, 0.46, 0.0, 0.0, 0.2, 102037.0, 23.72, 38.38
+6.0, 0.0, 0.09, 0.0, 25.22, 28.4, 831.4453, 0.46, 0.0, 0.0, 0.31, 102037.0, 23.72, 38.39
+7.0, 0.0, 0.09, 0.0, 25.21, 28.4, 831.4453, 0.41, 0.0, 0.0, 0.25, 102037.0, 23.72, 38.39
+8.0, 0.0, 0.09, 0.0, 25.21, 28.4, 834.668, 0.4, 0.0, 0.0, 0.25, 102037.0, 23.72, 38.37
+9.0, 0.0, 0.09, 0.0, 25.22, 28.4, 831.4453, 0.43, 0.0, 0.0, 0.36, 102037.0, 23.72, 38.39
+10.0, 0.0, 0.09, 0.0, 25.21, 28.4, 833.0566, 0.44, 0.0, 0.0, 0.31, 102035.0, 23.72, 38.38
這里有幾個問題。
如何開始這樣做?
如果我正確理解了這個問題......是的,您可以為此使用 Python 。
您可以使用 Python 瀏覽不同的文件夾,和/或檢查文件的名稱中是否包含“Sitting”或“Standing”以對它們進行不同的分類。
您還可以使用pandas
閱讀您的csv
文件。
通過您提供的示例,您可以使用以下內容生成DataFrame
:
df = pd.read_csv('Sitting_100s_elevated.csv',lineterminator='+', index_col=0)
df
Sensor1 Sensor2 Sensor3 Sensor4 Sensor5 Sensor6 Sensor7 Sensor8 Sensor9 Sensor10 Sensor11 Sensor12 Sensor13
Time [s]
0.00 0.00 0.09 0.00 25.22 28.50 833.06 0.49 0.00 0.00 0.31 102,037.00 23.72 38.39
1.00 0.00 0.09 0.00 25.22 28.50 834.67 0.45 0.00 0.00 0.28 102,037.00 23.72 38.39
2.00 0.00 0.09 0.00 25.22 28.50 831.45 0.38 0.00 0.00 0.31 102,037.00 23.72 38.39
3.00 0.00 0.09 0.00 25.22 28.50 834.67 0.47 0.00 0.00 0.31 102,037.00 23.72 38.38
4.00 0.00 0.09 0.00 25.22 28.50 829.83 0.41 0.00 0.00 0.28 102,037.00 23.72 38.40
... ... ... ... ... ... ... ... ... ... ... ... ... ...
6.00 0.00 0.09 0.00 25.22 28.40 831.45 0.46 0.00 0.00 0.31 102,037.00 23.72 38.39
7.00 0.00 0.09 0.00 25.21 28.40 831.45 0.41 0.00 0.00 0.25 102,037.00 23.72 38.39
8.00 0.00 0.09 0.00 25.21 28.40 834.67 0.40 0.00 0.00 0.25 102,037.00 23.72 38.37
9.00 0.00 0.09 0.00 25.22 28.40 831.45 0.43 0.00 0.00 0.36 102,037.00 23.72 38.39
10.00 0.00 0.09 0.00 25.21 28.40 833.06 0.44 0.00 0.00 0.31 102,035.00 23.72 38.38
11 rows × 13 columns
(如果您不希望將第一列作為索引,您可以從上面的代碼中刪除index_col=0
。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.