Есть ли возможность игнорировать чувствительность к регистру?Python

Программы на Python
Ответить
Anonymous
 Есть ли возможность игнорировать чувствительность к регистру?

Сообщение Anonymous »

У меня есть регистратор данных, который создает в наборах данных столбцы с именами, состоящими из прописных и строчных букв, например «SampleTime» и «SensorData».
После обновления прошивки столбцы теперь создаются с теми же именами, но только с заглавными буквами, например «SAMPLETIME» и «SENSORDATA».
Чтобы быстро проанализировать эти данные, я использую небольшой скрипт Python. В этом скрипте я использую имена столбцов для различных расчетов и диаграмм. Скрипт легко адаптировать.
Однако мне стало любопытно, и я хотел бы изучить что-то новое в Python. Помимо того, что не рекомендуется использовать жестко закодированные имена в скрипте, это отдельная тема, а не предмет моего вопроса: есть ли способ использовать один и тот же скрипт независимо от того, были ли наборы данных созданы со старой или новой прошивкой, без необходимости предварительно проверять, какая прошивка использовалась, и без предварительного преобразования имен столбцов в верхний или нижний регистр? (Используя `upper()` или `lower()` или без предварительного `rename()`. Итак, есть ли способ игнорировать чувствительность к регистру?
В качестве примера я могу привести небольшой скрипт, чтобы показать, для чего я:

Код: Выделить всё

import pandas as pd
df = pd.DataFrame([['2024-06-21 06:22:38', 22958 ,605.968389, 0.994548],
['2024-06-21 06:22:39', 22959 ,616.009398, 0.983443],
['2024-06-21 06:22:40', 22960 ,624.630573, 0.973647],
['2024-06-21 06:22:41', 22961 ,633.476367, 1.017651],
['2024-06-21 06:22:42', 22962 ,642.322161, 5.017651]]
columns=['SampleTime', 'UTCs', 'SensorData1', 'SensorData2'])
print(df)
Это показывает набор данных в соответствии со старой прошивкой:

Код: Выделить всё

             SampleTime   UTCs SensorData1 SensorData2
0   2024-06-21 06:22:38  22958  605.968389    0.994548
1   2024-06-21 06:22:39  22959  616.009398    0.983443
2   2024-06-21 06:22:40  22960  624.630573    0.973647
3   2024-06-21 06:22:41  22961  633.476367    1.017651
4   2024-06-21 06:22:42  22962  642.322161    5.017651
Как уже упоминалось, существуют дополнительные расчеты/графики, выполненные с помощью кодирования, например:

Код: Выделить всё

df['result'] = (df.SensorData1 - df.SensorData2) / (df.SensorData1 + df.SensorData2)
Я хотел бы знать, есть ли способ использовать также набор данных, полученный с помощью новой прошивки:

Код: Выделить всё

import pandas as pd
df = pd.DataFrame([['2024-06-21 06:22:38', 22958 ,605.968389, 0.994548],
['2024-06-21 06:22:39', 22959 ,616.009398, 0.983443],
['2024-06-21 06:22:40', 22960 ,624.630573, 0.973647],
['2024-06-21 06:22:41', 22961 ,633.476367, 1.017651],
['2024-06-21 06:22:42', 22962 ,642.322161, 5.017651]]
columns=['SAMPLETIME', 'UTCS', 'SENSORDATA1', 'SENSORDATA2'])
print(df)
Это показывает набор данных в соответствии с новой прошивкой:

Код: Выделить всё

             SAMPLETIME   UTCS SENSORDATA1 SENSORDATA2
0   2024-06-21 06:22:38  22958  605.968389    0.994548
1   2024-06-21 06:22:39  22959  616.009398    0.983443
2   2024-06-21 06:22:40  22960  624.630573    0.973647
3   2024-06-21 06:22:41  22961  633.476367    1.017651
4   2024-06-21 06:22:42  22962  642.322161    5.017651
как и в случае с Upper() и Lower(), я получаю только полные заглавные или строчные буквы. Следовательно, старый сценарий также использует в вычислениях сочетание верхнего и нижнего регистра.
Есть ли способ?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ensitivity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»