У меня есть необработанные данные измерений в виде файла CSV в формате данных RAW CSV. Теперь у меня есть код, который усредняет миллисекунды до секунды. а затем мне нужно применить поправку времени на 1 час 10 минут 25 секунд к исходному времени. Например:
10:23:02.067
10:23:02.166
10:23:02.266
10:23:02.366
10:23:02.466
10:23:02.566
10:23:02.666
10:23:02.766
10:23:02.866
10:23:02.966
Все значения в строки (миллисекунды) должны быть усреднены до 10:23:02, а затем вы применяете коррекцию времени и получаете 9:12:37. Но изначально время такое:
23:02.0
23:02.1
23:02.2
23:02.3
23:02.4< ш />23:02.5
23:02.6
23:02.7
23:02.8
23:02.9
Когда я открываю CSV в Excel, и код думает, что 23 — это час, 02 — это минуты, а 0 — второй и окончательный результат`
такое: 22:49:35 Кто-нибудь, пожалуйста, помогите. Код следующий:
import pandas as pd
import numpy as np
import os
from datetime import timedelta
from tkinter import Tk, filedialog, messagebox`
def upload_files(prompt_message):
root = Tk()
root.withdraw() # Hide the root window
file_paths = filedialog.askopenfilenames(title=prompt_message) # Allow multiple file selection
return file_paths
def create_new_filename(file_path):
base_name = os.path.basename(file_path) # Extract the file name with extension
file_name, file_extension = os.path.splitext(base_name) # Split name and extension
new_file_name = f"{file_name}_Processed{file_extension}" # Append suffix to the name
return new_file_name
def safe_interp(x, xp, fp):
y = np.interp(x, xp, fp, left=0, right=0)
y[x < xp.min()] = 0
y[x > xp.max()] = 0
return y
def process_time_column(df, time_column):
df[time_column] = df[time_column].astype(str)
df['Time'] = df[time_column].str.slice(0, 8) # Extract 'HH:MM:SS.fff' only
return df
def average_by_second(df):
numeric_columns = df.select_dtypes(include=['float64', 'int64']).columns
df_grouped = df.groupby('Time')[numeric_columns].mean().reset_index()
# Merge back non-numeric columns without averaging, keeping the first occurrence for each unique 'Time'
df_final = pd.merge(df_grouped, df.drop(columns=numeric_columns).drop_duplicates('Time'), on='Time', how='left')
return df_final.round(5)
def apply_time_correction(df):
time_correction = timedelta(hours=1, minutes=10, seconds=25)
df['corrected_time'] = (pd.to_datetime(df['Time'], format='%I:%M:%S') - time_correction).dt.time
return df
Подробнее здесь: https://stackoverflow.com/questions/793 ... to-a-sting
Есть ли функция для извлечения времени DTE из CSV, не проанализируя его в укус? ⇐ Python
Программы на Python
1737731071
Anonymous
У меня есть необработанные данные измерений в виде файла CSV в формате данных RAW CSV. Теперь у меня есть код, который усредняет миллисекунды до секунды. а затем мне нужно применить поправку времени на 1 час 10 минут 25 секунд к исходному времени. Например:
10:23:02.067
10:23:02.166
10:23:02.266
10:23:02.366
10:23:02.466
10:23:02.566
10:23:02.666
10:23:02.766
10:23:02.866
10:23:02.966
Все значения в строки (миллисекунды) должны быть усреднены до 10:23:02, а затем вы применяете коррекцию времени и получаете 9:12:37. Но изначально время такое:
23:02.0
23:02.1
23:02.2
23:02.3
23:02.4< ш />23:02.5
23:02.6
23:02.7
23:02.8
23:02.9
Когда я открываю CSV в Excel, и код думает, что 23 — это час, 02 — это минуты, а 0 — второй и окончательный результат`
такое: 22:49:35 Кто-нибудь, пожалуйста, помогите. Код следующий:
import pandas as pd
import numpy as np
import os
from datetime import timedelta
from tkinter import Tk, filedialog, messagebox`
def upload_files(prompt_message):
root = Tk()
root.withdraw() # Hide the root window
file_paths = filedialog.askopenfilenames(title=prompt_message) # Allow multiple file selection
return file_paths
def create_new_filename(file_path):
base_name = os.path.basename(file_path) # Extract the file name with extension
file_name, file_extension = os.path.splitext(base_name) # Split name and extension
new_file_name = f"{file_name}_Processed{file_extension}" # Append suffix to the name
return new_file_name
def safe_interp(x, xp, fp):
y = np.interp(x, xp, fp, left=0, right=0)
y[x < xp.min()] = 0
y[x > xp.max()] = 0
return y
def process_time_column(df, time_column):
df[time_column] = df[time_column].astype(str)
df['Time'] = df[time_column].str.slice(0, 8) # Extract 'HH:MM:SS.fff' only
return df
def average_by_second(df):
numeric_columns = df.select_dtypes(include=['float64', 'int64']).columns
df_grouped = df.groupby('Time')[numeric_columns].mean().reset_index()
# Merge back non-numeric columns without averaging, keeping the first occurrence for each unique 'Time'
df_final = pd.merge(df_grouped, df.drop(columns=numeric_columns).drop_duplicates('Time'), on='Time', how='left')
return df_final.round(5)
def apply_time_correction(df):
time_correction = timedelta(hours=1, minutes=10, seconds=25)
df['corrected_time'] = (pd.to_datetime(df['Time'], format='%I:%M:%S') - time_correction).dt.time
return df
Подробнее здесь: [url]https://stackoverflow.com/questions/79384694/is-there-a-function-to-extract-dte-time-from-csv-without-parsing-it-to-a-sting[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия