Как извлечь число из колонки в таблице
Задание звучит так: в файле (pr1.txt) лежит таблица (данные):
| 10 | 10000 | 12.3 | 5403 |
|---|---|---|---|
| 20 | 20000 | 13 | 5000 |
| 30 | 30000 | 12.3 | 4312 |
| 250 | 250000 | 12.3 | 5123 |
Необходимо проанализировать вторую колонку и сравнить со значением p (вводится с клавиатуры) и вывести строчки, у которых вторая цифра меньше значения "p", записав их в файл
Проблема именно с тем как извлечь именно вторую колонку и сравнить с числом p
Для всех интересующихся кодом:
print('Кондиционер|Номин воздух|Сопр|Масса|') #для задания
f=open('pr1.txt','r') #открываю файл для прочтения данных
while True:
line=f.readline()
if len(line) == 0:
break
print ('КД-',line,end='') #вывожу все данные в виде таблицы (требование задания)
f.close()
p=int(input('Введите сравниваемое значение : ')) #ввожу значение p
with open("pr1.txt") as group673:
digits = re.findall(r'[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?', group673.read()) #сделал лист, который выводит все числа, хотя думаю тут как раз не стоило это делать
if (digits<p): #попытался сравнивать элемент списка с р, но словил ошибку :(
minimal=digits
print (minimal)
print(digits)
Ответы (1 шт):
Автор решения: elderberry17
→ Ссылка
Если я верно понял поставленную задачу, то Вы можете использовать для ее решения классические pandas и numpy:
import pandas as pd
import numpy as np
data = pd.read_csv('data.txt', sep=' ', header=None)
p = float(input())
data = data[data[1] < p]
np.savetxt('answer.txt', data.values, fmt='%d')