From 553140fe3c043eebb46acda913c356fd9e68df50 Mon Sep 17 00:00:00 2001 From: nuluh Date: Sat, 17 Aug 2024 19:51:42 +0700 Subject: [PATCH 1/7] feat(script): add zero-padding to CSV filenames and change the output generated csv as raw data in `raw` folder --- generate_dummy_data.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/generate_dummy_data.py b/generate_dummy_data.py index a24bbc8..e764ed8 100644 --- a/generate_dummy_data.py +++ b/generate_dummy_data.py @@ -13,14 +13,20 @@ processed_path = os.path.join(base_path, "processed") os.makedirs(raw_path, exist_ok=True) os.makedirs(processed_path, exist_ok=True) -for damage in range(1, 6): # 5 Damage levels - damage_folder = f"DAMAGE_{damage}" - damage_path = os.path.join(processed_path, damage_folder) +# Define the number of zeros to pad +num_damages = 5 +num_tests = 10 +damage_pad = len(str(num_damages)) +test_pad = len(str(num_tests)) + +for damage in range(1, num_damages + 1): # 5 Damage levels starts from 1 + damage_folder = f"DAMAGE_{damage:0{damage_pad}}" + damage_path = os.path.join(raw_path, damage_folder) os.makedirs(damage_path, exist_ok=True) for test in range(1, 11): # 10 Tests per damage level # Filename for the CSV - csv_filename = f"D{damage}_TEST{test}.csv" + csv_filename = f"D{damage:0{damage_pad}}_TEST{test:0{test_pad}}.csv" csv_path = os.path.join(damage_path, csv_filename) # Generate dummy data -- 2.49.1 From 3860f2cc5b6428531c363660cf52bc06ee2826b4 Mon Sep 17 00:00:00 2001 From: nuluh Date: Sun, 18 Aug 2024 10:34:22 +0700 Subject: [PATCH 2/7] fix(docs): The readme.md should belong to raw data since the script is intended to simulate raw data that coming from accelerometer sensors instead of processed data that should be generated by simulating frequency domain data instead. --- data/{processed => raw}/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) rename data/{processed => raw}/README.md (80%) diff --git a/data/processed/README.md b/data/raw/README.md similarity index 80% rename from data/processed/README.md rename to data/raw/README.md index 3c575b9..18b8797 100644 --- a/data/processed/README.md +++ b/data/raw/README.md @@ -1,8 +1,8 @@ -# Processed Data Directory +# Raw Data Directory ## Overview -This `data/processed` directory contains structured data that has been processed and formatted for analysis. Each subdirectory within `processed` represents a different level of simulated damage, and each contains multiple test files from experiments conducted under that specific damage scenario. +This `data/raw` directory contains structured data that has been processed and formatted for analysis. Each subdirectory within `raw` represents a different level of simulated damage, and each contains multiple test files from experiments conducted under that specific damage scenario. ## Directory Structure @@ -12,12 +12,12 @@ The directory is organized as follows: data └── processed ├── DAMAGE_1 -│ ├── D1_TEST1.csv -│ ├── D1_TEST2.csv +│ ├── D1_TEST1.csv +│ ├── D1_TEST2.csv │ ... -│ └── D1_TEST10.csv +│ └── D1_TEST10.csv ├── DAMAGE_2 -│ ├── D2_TEST1.csv +│ ├── D2_TEST1.csv │ ... ├── DAMAGE_3 │ ... -- 2.49.1 From 55db5709a9678d87724ab0e85105e6d745be26a4 Mon Sep 17 00:00:00 2001 From: nuluh Date: Mon, 19 Aug 2024 13:20:14 +0700 Subject: [PATCH 3/7] refactor(script): Add time-domain feature extraction functionality called `ExtractTimeFeatures` function returning features in {dictionary} that later called in `build_features.py`. This function will be called for each individual .`csv`. Each returning value later appended in `build_features.py`. This function approach rather than just assigning class ensure the flexibility and enhance maintainability. --- code/src/features/time_domain_features.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/src/features/time_domain_features.py b/code/src/features/time_domain_features.py index d64566c..d37b061 100644 --- a/code/src/features/time_domain_features.py +++ b/code/src/features/time_domain_features.py @@ -36,6 +36,13 @@ class FeatureExtractor: result += f"{feature}: {value:.4f}\n" return result +def ExtractTimeFeatures(object): + data = pd.read_csv(object, skiprows=1) + extractor = FeatureExtractor(data.iloc[:, 1].values) # Assuming the data is in the second column + features = extractor.features + return features + # Save features to a file + # np.savez(output_file, **features) # Usage # Assume you have a CSV file with numerical data in the first column # Create an instance of the class and pass the path to your CSV file -- 2.49.1 From 8ab934fe1c08ec274a80329bf170044ca4905846 Mon Sep 17 00:00:00 2001 From: nuluh Date: Tue, 20 Aug 2024 11:27:02 +0700 Subject: [PATCH 4/7] feat(features): refactor feature extraction to handle multiple files and directories - Modify `build_features` function to support iterative processing across nested directories, enhancing the system's ability to handle larger datasets and varied input structures. - Replace direct usage of `FeatureExtractor` class with `ExtractTimeFeatures` function, which now acts as a wrapper to include this class, facilitating streamlined integration and maintenance of feature extraction processes. - Implement `extract_numbers` function using regex to parse filenames and extract numeric identifiers, used for labels when training with SVM - Switch output from `.npz` to `.csv` format in `build_features`, offering better compatibility with data analysis tools and readability. - Update documentation and comments within the code to reflect changes in functionality and usage of the new feature extraction setup. Closes #4 --- code/src/features/build_features.py | 41 ++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/code/src/features/build_features.py b/code/src/features/build_features.py index 017f26c..8ecd03c 100644 --- a/code/src/features/build_features.py +++ b/code/src/features/build_features.py @@ -1,16 +1,39 @@ # src/features/build_features.py import pandas as pd -from time_domain_features import FeatureExtractor -import numpy as np +from time_domain_features import ExtractTimeFeatures +import os +import re -def build_features(input_file, output_file): - data = pd.read_csv(input_file) - # Assuming the relevant data is in the first column - extractor = FeatureExtractor(data.iloc[:, 0].values) - features = extractor.features +# define function, regex pattern for extracting the damage level and test number store in pairs array +def extract_numbers(filename): + # Find all occurrences of one or more digits in the filename + numbers = re.findall(r'\d+', filename) + # Convert the list of number strings to integers + numbers = [int(num) for num in numbers] + # Convert to a tuple and return + return print(tuple(numbers)) +def build_features(input_dir, output_dir): + all_features = [] + for nth_damage in os.listdir(input_dir): + nth_damage_path = os.path.join(input_dir, nth_damage) + if os.path.isdir(nth_damage_path): + print(nth_damage) + for nth_test in os.listdir(nth_damage_path): + nth_test_path = os.path.join(nth_damage_path, nth_test) + # print(nth_test_path) + features = ExtractTimeFeatures(nth_test_path) # return the one csv file feature in dictionary {} + all_features.append(features) + + # Create a DataFrame from the list of dictionaries + df = pd.DataFrame(all_features) + print(df) + # Save the DataFrame to a CSV file in the output directory + output_file_path = os.path.join(output_dir, 'combined_features.csv') + df.to_csv(output_file_path, index=False) + print(f"Features saved to {output_file_path}") # Save features to a file - np.savez(output_file, **features) + # np.savez(output_file, **features) if __name__ == "__main__": import sys @@ -18,4 +41,4 @@ if __name__ == "__main__": output_path = sys.argv[2] # 'data/features/feature_matrix.npz' # Assuming only one file for simplicity; adapt as needed - build_features(f"{input_path}processed_data.csv", output_path) + build_features(input_path, output_path) -- 2.49.1 From 57c0e03a4f7dce77730963b7225e6df3ce5deeee Mon Sep 17 00:00:00 2001 From: nuluh Date: Tue, 20 Aug 2024 11:31:24 +0700 Subject: [PATCH 5/7] docs(script): Update time-domain feature extraction to skip header row separator char info --- code/src/features/time_domain_features.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/src/features/time_domain_features.py b/code/src/features/time_domain_features.py index d37b061..1ef4ace 100644 --- a/code/src/features/time_domain_features.py +++ b/code/src/features/time_domain_features.py @@ -37,7 +37,7 @@ class FeatureExtractor: return result def ExtractTimeFeatures(object): - data = pd.read_csv(object, skiprows=1) + data = pd.read_csv(object, skiprows=1) # Skip the header row separator char info extractor = FeatureExtractor(data.iloc[:, 1].values) # Assuming the data is in the second column features = extractor.features return features -- 2.49.1 From de902b2a8ce9ff73ec73b748ff508554801759ad Mon Sep 17 00:00:00 2001 From: nuluh Date: Tue, 20 Aug 2024 11:32:22 +0700 Subject: [PATCH 6/7] feat: Add launch.json for Python debugger configuration This commit adds a new file, `.vscode/launch.json`, which contains the configuration for launching the Python debugger. The configuration includes the necessary attributes such as the debugger type, request type, program file, console type, and command-line arguments. This configuration allows developers to easily debug Python files in the integrated terminal. --- .vscode/launch.json | 16 ++++ code/notebooks/03_feature_extraction.ipynb | 91 ++++++++++++++++++++-- 2 files changed, 102 insertions(+), 5 deletions(-) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..fef1db9 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Python Debugger: Current File with Arguments", + "type": "debugpy", + "request": "launch", + "program": "${file}", + "console": "integratedTerminal", + "args": ["data/raw", "data/raw"] + } + ] +} diff --git a/code/notebooks/03_feature_extraction.ipynb b/code/notebooks/03_feature_extraction.ipynb index b0de9e1..9f54286 100644 --- a/code/notebooks/03_feature_extraction.ipynb +++ b/code/notebooks/03_feature_extraction.ipynb @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -154,7 +154,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -186,12 +186,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Print Time-domain Features" + "### Print Time-domain Features (Single Mockup Data)" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -264,7 +264,7 @@ "0 2.067638 1.917716 0.412307 " ] }, - "execution_count": 23, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -272,10 +272,12 @@ "source": [ "import pandas as pd\n", "import sys\n", + "import os\n", "# Assuming the src directory is one level up from the notebooks directory\n", "sys.path.append('../src/features')\n", "from time_domain_features import FeatureExtractor\n", "\n", + "\n", "# Extract features\n", "extracted = FeatureExtractor(mock_df['SampleData'])\n", "\n", @@ -283,6 +285,85 @@ "features = pd.DataFrame(extracted.features, index=[0])\n", "features\n" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Print Time-domain Features (Multiple CSV Mockup Data)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import sys\n", + "import os\n", + "# Assuming the src directory is one level up from the notebooks directory\n", + "sys.path.append('../src/features')\n", + "from time_domain_features import ExtractTimeFeatures # use wrapper function instead of class for easy use\n", + "\n", + "def build_features(input_dir):\n", + " all_features = []\n", + " for nth_damage in os.listdir(input_dir):\n", + " nth_damage_path = os.path.join(input_dir, nth_damage)\n", + " if os.path.isdir(nth_damage_path):\n", + " # print(nth_damage)\n", + " for nth_test in os.listdir(nth_damage_path):\n", + " nth_test_path = os.path.join(nth_damage_path, nth_test)\n", + " # print(nth_test_path)\n", + " features = ExtractTimeFeatures(nth_test_path) # return the one csv file feature in dictionary {}\n", + " all_features.append(features)\n", + "\n", + " # Create a DataFrame from the list of dictionaries\n", + " df = pd.DataFrame(all_features)\n", + " return df\n", + "\n", + "data_dir = \"../../data/raw\"\n", + "# Extract features\n", + "df = build_features(data_dir)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 50 entries, 0 to 49\n", + "Data columns (total 14 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Mean 50 non-null float64\n", + " 1 Max 50 non-null float64\n", + " 2 Peak (Pm) 50 non-null float64\n", + " 3 Peak-to-Peak (Pk) 50 non-null float64\n", + " 4 RMS 50 non-null float64\n", + " 5 Variance 50 non-null float64\n", + " 6 Standard Deviation 50 non-null float64\n", + " 7 Power 50 non-null float64\n", + " 8 Crest Factor 50 non-null float64\n", + " 9 Form Factor 50 non-null float64\n", + " 10 Pulse Indicator 50 non-null float64\n", + " 11 Margin 50 non-null float64\n", + " 12 Kurtosis 50 non-null float64\n", + " 13 Skewness 50 non-null float64\n", + "dtypes: float64(14)\n", + "memory usage: 5.6 KB\n" + ] + } + ], + "source": [ + "df.info()" + ] } ], "metadata": { -- 2.49.1 From 79a0f8237205a32d0b2cc17a9da5bb361821ec47 Mon Sep 17 00:00:00 2001 From: nuluh Date: Tue, 20 Aug 2024 15:28:19 +0700 Subject: [PATCH 7/7] feat(notebook): add 'labels' column to feature extraction dataframe Implement extraction of 'labels' from directory names and append as a new column in the dataframe during feature extraction. Adapted from the existing `build_features.py` script to enhance data usability in supervised learning models within the Jupyter notebook environment. Closes #10 --- code/notebooks/03_feature_extraction.ipynb | 1196 +++++++++++++++++++- 1 file changed, 1160 insertions(+), 36 deletions(-) diff --git a/code/notebooks/03_feature_extraction.ipynb b/code/notebooks/03_feature_extraction.ipynb index 9f54286..16dd5b2 100644 --- a/code/notebooks/03_feature_extraction.ipynb +++ b/code/notebooks/03_feature_extraction.ipynb @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 34, "metadata": {}, "outputs": [], "source": [ @@ -154,7 +154,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 31, "metadata": {}, "outputs": [ { @@ -293,18 +293,50 @@ "### Print Time-domain Features (Multiple CSV Mockup Data)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Importing modules" + ] + }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import sys\n", "import os\n", + "import re\n", "# Assuming the src directory is one level up from the notebooks directory\n", "sys.path.append('../src/features')\n", "from time_domain_features import ExtractTimeFeatures # use wrapper function instead of class for easy use\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### The function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Define a function to extract numbers from a filename that later used as labels features\n", + "def extract_numbers(filename):\n", + " # Find all occurrences of one or more digits in the filename\n", + " numbers = re.findall(r'\\d+', filename)\n", + " # Convert the list of number strings to integers\n", + " numbers = [int(num) for num in numbers]\n", + " # Convert to a tuple and return\n", + " return numbers\n", "\n", "def build_features(input_dir):\n", " all_features = []\n", @@ -316,53 +348,1145 @@ " nth_test_path = os.path.join(nth_damage_path, nth_test)\n", " # print(nth_test_path)\n", " features = ExtractTimeFeatures(nth_test_path) # return the one csv file feature in dictionary {}\n", + " features['label'] = extract_numbers(nth_test)[0] # add labels to the dictionary\n", " all_features.append(features)\n", "\n", " # Create a DataFrame from the list of dictionaries\n", " df = pd.DataFrame(all_features)\n", - " return df\n", - "\n", - "data_dir = \"../../data/raw\"\n", - "# Extract features\n", - "df = build_features(data_dir)\n", - "\n" + " return df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Execute the automation" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "data_dir = \"../../data/raw\"\n", + "# Extract features\n", + "df = build_features(data_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "RangeIndex: 50 entries, 0 to 49\n", - "Data columns (total 14 columns):\n", - " # Column Non-Null Count Dtype \n", - "--- ------ -------------- ----- \n", - " 0 Mean 50 non-null float64\n", - " 1 Max 50 non-null float64\n", - " 2 Peak (Pm) 50 non-null float64\n", - " 3 Peak-to-Peak (Pk) 50 non-null float64\n", - " 4 RMS 50 non-null float64\n", - " 5 Variance 50 non-null float64\n", - " 6 Standard Deviation 50 non-null float64\n", - " 7 Power 50 non-null float64\n", - " 8 Crest Factor 50 non-null float64\n", - " 9 Form Factor 50 non-null float64\n", - " 10 Pulse Indicator 50 non-null float64\n", - " 11 Margin 50 non-null float64\n", - " 12 Kurtosis 50 non-null float64\n", - " 13 Skewness 50 non-null float64\n", - "dtypes: float64(14)\n", - "memory usage: 5.6 KB\n" - ] + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MeanMaxPeak (Pm)Peak-to-Peak (Pk)RMSVarianceStandard DeviationPowerCrest FactorForm FactorPulse IndicatorMarginKurtosisSkewnesslabel
0-0.1796111.3975862.1005683.4981541.0149160.9977951.0529301.0300552.069696-5.650644-11.6951122.4275272.383707-0.2677591
1-0.2529721.1909461.3653202.5562660.7971600.5714700.7968480.6354651.712729-3.151180-5.3971171.6647612.1059980.5349031
20.0827312.0255322.1144134.1399451.1373451.2867091.1956911.2935531.85907813.74742725.5575432.3463792.538671-0.2416131
30.2290251.3691921.3691922.4334170.8735690.7106700.8886130.7631221.5673543.8143025.9783611.6385361.755856-0.2612051
40.5637381.7005551.7005552.1715560.8889850.4724940.7245640.7902941.9129181.5769463.0165692.2225672.1025680.4408461
50.2419722.1607722.4207744.5815461.1665331.3022491.2028891.3607992.0751874.82095010.0043732.9661413.869795-0.9026881
6-0.4579811.7343052.3504194.0847251.1720311.1639101.1372041.3736562.005424-2.559126-5.1321342.6672262.8358630.4156841
70.2150780.8964370.8964371.4697670.5719650.2808860.5586550.3271441.5672932.6593434.1679691.3772811.4438940.0162731
8-0.2397662.8716132.8716134.6794641.2289491.4528291.2705331.5103172.336641-5.125629-11.9767533.2801314.8161551.6981221
9-0.8031420.4702482.8262023.2964501.3139701.0814791.0961951.7265172.150888-1.636036-3.5189303.1582432.329370-0.7539231
10-0.0775381.0971141.0971142.1013270.7397220.5411770.7754410.5471891.483142-9.540155-14.1494101.5128131.6627700.3790362
11-0.0965671.4385301.7376053.1761340.9810600.9531531.0291060.9624781.771151-10.159348-17.9937361.9732851.9557390.0015752
12-0.1338440.8907241.2268632.1175870.5589740.2945380.5720700.3124522.194850-4.176314-9.1663822.0184833.056050-0.0820452
13-0.4090951.3852172.2095563.5947731.1914991.2523101.1796001.4196691.854435-2.912522-5.4010822.3226211.9564180.0378522
140.0930171.1435711.3059582.4495280.7689560.5826410.8045980.5912931.6983528.26683014.0399901.7473442.037027-0.0923072
150.0068111.4814532.1968413.6782930.9668420.9347371.0191160.9347832.272182141.947952322.5315992.7227953.366854-0.8654942
160.4611181.3973491.3973492.3955870.8460200.5031190.7476770.7157491.6516751.8347143.0303521.6529422.671065-0.8171202
17-0.4913422.3374852.3374854.0863741.2415531.3000381.2018681.5414551.882710-2.526863-4.7573492.3411964.1194871.6150292
180.3308591.4666411.4666412.0821460.7660050.4772960.7282370.5867631.9146632.3152034.4328332.0018731.7181360.3376742
190.1944961.7075911.7075913.0184490.9333450.8333040.9622340.8711331.8295394.7987778.7795502.0440222.116626-0.1191062
20-0.0726331.8249071.8249073.1705071.0761431.1528091.1317681.1580841.695784-14.816250-25.1251652.0412252.0441180.7144943
210.1851051.2939761.2939762.5501550.8461360.6816820.8703010.7159461.5292784.5711176.9905061.5152851.902752-0.6585993
22-0.3534291.4401461.7074913.1476361.0434110.9637941.0348341.0887061.636451-2.952248-4.8312111.9030562.0427620.3064453
230.4112001.7135641.7135642.5710100.8209750.5049140.7490100.6739992.0872311.9965334.1672272.1676242.571401-0.0874563
240.4269561.4301481.4301482.1040400.6572490.2496850.5267140.4319762.1759611.5393843.3496381.9861054.027795-0.2648953
250.0706701.6083782.6335744.2419521.1548831.3287611.2150721.3337552.28038116.34199037.2659693.0768283.605941-1.1052853
260.3097271.8165161.8165163.2341341.1969451.3367471.2187181.4326771.5176273.8645205.8649021.8544361.547268-0.1466163
27-0.1562861.2144201.7253952.9398150.9745390.9253021.0139590.9497271.770472-6.235606-11.0399681.9906511.960302-0.0563783
280.2455481.8434891.8434892.9704030.9957230.9311711.0171700.9914641.8514084.0551147.5076692.1944541.9884980.4558543
29-0.1638721.7170141.7170143.2517620.9459540.8679760.9820480.8948301.815113-5.772514-10.4777621.9825682.4217060.6182633
300.2903412.8057322.8057324.5689401.0906521.1052241.1081641.1895222.5725273.7564509.6635714.2359484.7368130.7333604
310.3682522.1718672.1718672.9755101.0059400.8763050.9867481.0119142.1590432.7316595.8977702.7384072.0980440.6627444
32-0.1268421.4260122.0279363.4539491.1588831.3269201.2142301.3430091.749907-9.136443-15.9879222.2306361.819980-0.1694324
330.1829331.8860901.8860902.9460851.1746391.3463131.2230711.3797771.6056766.42115210.3102901.9089431.3507730.3746834
340.0284160.8040742.3247153.1287890.8266220.6824970.8708210.6833042.81230629.08979581.8094073.6714436.699388-2.5759274
350.4100121.8609931.8609932.4121730.7988440.4700410.7226810.6381512.3296091.9483424.5388752.5775972.6198450.6854354
360.1231820.8797070.9635511.8432580.6720720.4365070.6964250.4516811.4337025.4559157.8221561.3761201.840085-0.4583794
370.3751842.0261942.0261943.0304741.0993771.0678681.0892751.2086311.8430382.9302365.4005362.1390081.5051340.2039974
380.2725101.6268061.6268062.6235280.8329260.6195050.8296620.6937661.9531213.0565015.9697152.1764502.0375040.1052654
390.0894692.8058722.8058724.1963991.2659741.5946841.3311171.6026892.21637514.14981231.3612903.0319312.7520881.1176614
400.4055641.8904271.8993813.7898081.1311631.1150471.1130771.2795291.6791402.7891104.6833072.0157942.869595-0.8875725
41-0.3822011.4098141.6897413.0995551.0341710.9234311.0129341.0695091.633909-2.705827-4.4210761.8217722.1598020.6969555
420.6862072.4407202.4407203.0622731.1868930.9378351.0208031.4087152.0563951.7296443.5568292.6611411.9328170.2715855
43-0.2734041.6627261.9234713.5861971.0965001.1275641.1193071.2023131.754191-4.010556-7.0352812.1490532.3254380.5767475
440.1307801.5526781.5526782.8843521.0816231.1528061.1317671.1699091.4355068.27058211.8724731.5686471.424831-0.2309165
450.1732591.9192441.9192442.9746370.9466620.8661500.9810140.8961692.0273815.46385311.0773132.3666351.9426540.4847495
46-0.0885531.5630991.5630993.0854600.9307920.8585320.9766910.8663741.679321-10.511085-17.6514851.8051391.9455040.2671655
470.1051411.5146441.5146442.4067520.6997700.4786230.7292490.4896782.1644896.65551514.4057872.3785822.6134860.5174885
480.2694791.7265071.7265072.6904860.8654550.6763930.8669180.7490121.9949133.2115826.4068272.4636472.3939380.6244685
490.0690121.1231531.1231532.0434540.5365810.2831570.5609090.2879192.0931647.77518316.2747331.8963522.8803360.2087635
\n", + "
" + ], + "text/plain": [ + " Mean Max Peak (Pm) Peak-to-Peak (Pk) RMS Variance \\\n", + "0 -0.179611 1.397586 2.100568 3.498154 1.014916 0.997795 \n", + "1 -0.252972 1.190946 1.365320 2.556266 0.797160 0.571470 \n", + "2 0.082731 2.025532 2.114413 4.139945 1.137345 1.286709 \n", + "3 0.229025 1.369192 1.369192 2.433417 0.873569 0.710670 \n", + "4 0.563738 1.700555 1.700555 2.171556 0.888985 0.472494 \n", + "5 0.241972 2.160772 2.420774 4.581546 1.166533 1.302249 \n", + "6 -0.457981 1.734305 2.350419 4.084725 1.172031 1.163910 \n", + "7 0.215078 0.896437 0.896437 1.469767 0.571965 0.280886 \n", + "8 -0.239766 2.871613 2.871613 4.679464 1.228949 1.452829 \n", + "9 -0.803142 0.470248 2.826202 3.296450 1.313970 1.081479 \n", + "10 -0.077538 1.097114 1.097114 2.101327 0.739722 0.541177 \n", + "11 -0.096567 1.438530 1.737605 3.176134 0.981060 0.953153 \n", + "12 -0.133844 0.890724 1.226863 2.117587 0.558974 0.294538 \n", + "13 -0.409095 1.385217 2.209556 3.594773 1.191499 1.252310 \n", + "14 0.093017 1.143571 1.305958 2.449528 0.768956 0.582641 \n", + "15 0.006811 1.481453 2.196841 3.678293 0.966842 0.934737 \n", + "16 0.461118 1.397349 1.397349 2.395587 0.846020 0.503119 \n", + "17 -0.491342 2.337485 2.337485 4.086374 1.241553 1.300038 \n", + "18 0.330859 1.466641 1.466641 2.082146 0.766005 0.477296 \n", + "19 0.194496 1.707591 1.707591 3.018449 0.933345 0.833304 \n", + "20 -0.072633 1.824907 1.824907 3.170507 1.076143 1.152809 \n", + "21 0.185105 1.293976 1.293976 2.550155 0.846136 0.681682 \n", + "22 -0.353429 1.440146 1.707491 3.147636 1.043411 0.963794 \n", + "23 0.411200 1.713564 1.713564 2.571010 0.820975 0.504914 \n", + "24 0.426956 1.430148 1.430148 2.104040 0.657249 0.249685 \n", + "25 0.070670 1.608378 2.633574 4.241952 1.154883 1.328761 \n", + "26 0.309727 1.816516 1.816516 3.234134 1.196945 1.336747 \n", + "27 -0.156286 1.214420 1.725395 2.939815 0.974539 0.925302 \n", + "28 0.245548 1.843489 1.843489 2.970403 0.995723 0.931171 \n", + "29 -0.163872 1.717014 1.717014 3.251762 0.945954 0.867976 \n", + "30 0.290341 2.805732 2.805732 4.568940 1.090652 1.105224 \n", + "31 0.368252 2.171867 2.171867 2.975510 1.005940 0.876305 \n", + "32 -0.126842 1.426012 2.027936 3.453949 1.158883 1.326920 \n", + "33 0.182933 1.886090 1.886090 2.946085 1.174639 1.346313 \n", + "34 0.028416 0.804074 2.324715 3.128789 0.826622 0.682497 \n", + "35 0.410012 1.860993 1.860993 2.412173 0.798844 0.470041 \n", + "36 0.123182 0.879707 0.963551 1.843258 0.672072 0.436507 \n", + "37 0.375184 2.026194 2.026194 3.030474 1.099377 1.067868 \n", + "38 0.272510 1.626806 1.626806 2.623528 0.832926 0.619505 \n", + "39 0.089469 2.805872 2.805872 4.196399 1.265974 1.594684 \n", + "40 0.405564 1.890427 1.899381 3.789808 1.131163 1.115047 \n", + "41 -0.382201 1.409814 1.689741 3.099555 1.034171 0.923431 \n", + "42 0.686207 2.440720 2.440720 3.062273 1.186893 0.937835 \n", + "43 -0.273404 1.662726 1.923471 3.586197 1.096500 1.127564 \n", + "44 0.130780 1.552678 1.552678 2.884352 1.081623 1.152806 \n", + "45 0.173259 1.919244 1.919244 2.974637 0.946662 0.866150 \n", + "46 -0.088553 1.563099 1.563099 3.085460 0.930792 0.858532 \n", + "47 0.105141 1.514644 1.514644 2.406752 0.699770 0.478623 \n", + "48 0.269479 1.726507 1.726507 2.690486 0.865455 0.676393 \n", + "49 0.069012 1.123153 1.123153 2.043454 0.536581 0.283157 \n", + "\n", + " Standard Deviation Power Crest Factor Form Factor Pulse Indicator \\\n", + "0 1.052930 1.030055 2.069696 -5.650644 -11.695112 \n", + "1 0.796848 0.635465 1.712729 -3.151180 -5.397117 \n", + "2 1.195691 1.293553 1.859078 13.747427 25.557543 \n", + "3 0.888613 0.763122 1.567354 3.814302 5.978361 \n", + "4 0.724564 0.790294 1.912918 1.576946 3.016569 \n", + "5 1.202889 1.360799 2.075187 4.820950 10.004373 \n", + "6 1.137204 1.373656 2.005424 -2.559126 -5.132134 \n", + "7 0.558655 0.327144 1.567293 2.659343 4.167969 \n", + "8 1.270533 1.510317 2.336641 -5.125629 -11.976753 \n", + "9 1.096195 1.726517 2.150888 -1.636036 -3.518930 \n", + "10 0.775441 0.547189 1.483142 -9.540155 -14.149410 \n", + "11 1.029106 0.962478 1.771151 -10.159348 -17.993736 \n", + "12 0.572070 0.312452 2.194850 -4.176314 -9.166382 \n", + "13 1.179600 1.419669 1.854435 -2.912522 -5.401082 \n", + "14 0.804598 0.591293 1.698352 8.266830 14.039990 \n", + "15 1.019116 0.934783 2.272182 141.947952 322.531599 \n", + "16 0.747677 0.715749 1.651675 1.834714 3.030352 \n", + "17 1.201868 1.541455 1.882710 -2.526863 -4.757349 \n", + "18 0.728237 0.586763 1.914663 2.315203 4.432833 \n", + "19 0.962234 0.871133 1.829539 4.798777 8.779550 \n", + "20 1.131768 1.158084 1.695784 -14.816250 -25.125165 \n", + "21 0.870301 0.715946 1.529278 4.571117 6.990506 \n", + "22 1.034834 1.088706 1.636451 -2.952248 -4.831211 \n", + "23 0.749010 0.673999 2.087231 1.996533 4.167227 \n", + "24 0.526714 0.431976 2.175961 1.539384 3.349638 \n", + "25 1.215072 1.333755 2.280381 16.341990 37.265969 \n", + "26 1.218718 1.432677 1.517627 3.864520 5.864902 \n", + "27 1.013959 0.949727 1.770472 -6.235606 -11.039968 \n", + "28 1.017170 0.991464 1.851408 4.055114 7.507669 \n", + "29 0.982048 0.894830 1.815113 -5.772514 -10.477762 \n", + "30 1.108164 1.189522 2.572527 3.756450 9.663571 \n", + "31 0.986748 1.011914 2.159043 2.731659 5.897770 \n", + "32 1.214230 1.343009 1.749907 -9.136443 -15.987922 \n", + "33 1.223071 1.379777 1.605676 6.421152 10.310290 \n", + "34 0.870821 0.683304 2.812306 29.089795 81.809407 \n", + "35 0.722681 0.638151 2.329609 1.948342 4.538875 \n", + "36 0.696425 0.451681 1.433702 5.455915 7.822156 \n", + "37 1.089275 1.208631 1.843038 2.930236 5.400536 \n", + "38 0.829662 0.693766 1.953121 3.056501 5.969715 \n", + "39 1.331117 1.602689 2.216375 14.149812 31.361290 \n", + "40 1.113077 1.279529 1.679140 2.789110 4.683307 \n", + "41 1.012934 1.069509 1.633909 -2.705827 -4.421076 \n", + "42 1.020803 1.408715 2.056395 1.729644 3.556829 \n", + "43 1.119307 1.202313 1.754191 -4.010556 -7.035281 \n", + "44 1.131767 1.169909 1.435506 8.270582 11.872473 \n", + "45 0.981014 0.896169 2.027381 5.463853 11.077313 \n", + "46 0.976691 0.866374 1.679321 -10.511085 -17.651485 \n", + "47 0.729249 0.489678 2.164489 6.655515 14.405787 \n", + "48 0.866918 0.749012 1.994913 3.211582 6.406827 \n", + "49 0.560909 0.287919 2.093164 7.775183 16.274733 \n", + "\n", + " Margin Kurtosis Skewness label \n", + "0 2.427527 2.383707 -0.267759 1 \n", + "1 1.664761 2.105998 0.534903 1 \n", + "2 2.346379 2.538671 -0.241613 1 \n", + "3 1.638536 1.755856 -0.261205 1 \n", + "4 2.222567 2.102568 0.440846 1 \n", + "5 2.966141 3.869795 -0.902688 1 \n", + "6 2.667226 2.835863 0.415684 1 \n", + "7 1.377281 1.443894 0.016273 1 \n", + "8 3.280131 4.816155 1.698122 1 \n", + "9 3.158243 2.329370 -0.753923 1 \n", + "10 1.512813 1.662770 0.379036 2 \n", + "11 1.973285 1.955739 0.001575 2 \n", + "12 2.018483 3.056050 -0.082045 2 \n", + "13 2.322621 1.956418 0.037852 2 \n", + "14 1.747344 2.037027 -0.092307 2 \n", + "15 2.722795 3.366854 -0.865494 2 \n", + "16 1.652942 2.671065 -0.817120 2 \n", + "17 2.341196 4.119487 1.615029 2 \n", + "18 2.001873 1.718136 0.337674 2 \n", + "19 2.044022 2.116626 -0.119106 2 \n", + "20 2.041225 2.044118 0.714494 3 \n", + "21 1.515285 1.902752 -0.658599 3 \n", + "22 1.903056 2.042762 0.306445 3 \n", + "23 2.167624 2.571401 -0.087456 3 \n", + "24 1.986105 4.027795 -0.264895 3 \n", + "25 3.076828 3.605941 -1.105285 3 \n", + "26 1.854436 1.547268 -0.146616 3 \n", + "27 1.990651 1.960302 -0.056378 3 \n", + "28 2.194454 1.988498 0.455854 3 \n", + "29 1.982568 2.421706 0.618263 3 \n", + "30 4.235948 4.736813 0.733360 4 \n", + "31 2.738407 2.098044 0.662744 4 \n", + "32 2.230636 1.819980 -0.169432 4 \n", + "33 1.908943 1.350773 0.374683 4 \n", + "34 3.671443 6.699388 -2.575927 4 \n", + "35 2.577597 2.619845 0.685435 4 \n", + "36 1.376120 1.840085 -0.458379 4 \n", + "37 2.139008 1.505134 0.203997 4 \n", + "38 2.176450 2.037504 0.105265 4 \n", + "39 3.031931 2.752088 1.117661 4 \n", + "40 2.015794 2.869595 -0.887572 5 \n", + "41 1.821772 2.159802 0.696955 5 \n", + "42 2.661141 1.932817 0.271585 5 \n", + "43 2.149053 2.325438 0.576747 5 \n", + "44 1.568647 1.424831 -0.230916 5 \n", + "45 2.366635 1.942654 0.484749 5 \n", + "46 1.805139 1.945504 0.267165 5 \n", + "47 2.378582 2.613486 0.517488 5 \n", + "48 2.463647 2.393938 0.624468 5 \n", + "49 1.896352 2.880336 0.208763 5 " + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "df.info()" + "df" ] } ], -- 2.49.1