После добавления клеток найдите мин и максимум пяти различных категорий в файле CSV -- python поле с участием csv поле с участием max поле с участием min пол Связанный проблема

After appending cells, find min and max of five different categories in a CSV file


0
vote

проблема

русский

Привет всем У меня есть вопрос. Я просто сейчас изучаю мин и макс.

У меня проблемы в нахождении мин и максимум пяти столбцов для каждой категории

Вот, что у меня есть:

Я переместил 5 столбцов из 26 данных столбцов из файла CSV в файл TXT.

Например Прилагаемые клетки для .CSV подобны

 <код> Distributors3  

Как получить мин и максимум, чтобы выглядеть так

 <код> Distributors4  

Вот что у меня есть

 <код> Distributors5  

Я не уверен, что я делаю не так. Я читал мин и максимум, но я не понимаю, как это относится к файлу .csv во время добавления 5 столбцов.

Если кто-то может предложить некоторые рекомендации, спасибо за ваш вклад.

Программа печатает неправильные номера

 <код> Distributors6  
Английский оригинал

Hello everyone I have a question. I just now learning min and max.

I'm having trouble in finding the min and max of five columns for each category

Heres what I have:

I moved a 5 columns of 26 column data from a csv file to a txt file.

for example the appended cells for .csv are like

state          car      motorcycle   van        airplane       bike  Maine          35.5      8.1         5.7         21.0%         33.2% Michigan       47.9      9.1         5.5         20.40%        25.2%                    Washington     52.5      1.2         4.6          3.50%        24.7%                      Denver         21.8      20.5        5.3          2.90%        30.9%     

how do I get the min and max to look like this

                   min                       max car             Denver:      21.8          Washington: 52.5    motor           Washington:  1.2           Denver:     20.5  van             Washington   4.6           Maine:       5.7  airplane        Denver       2.90%         Maine       21.0%  bike            Washington   24.7%         Maine      33.2%                    - 

Here is what I have

import csv import string, re import operator  output = [] data = [] csv_string = [] data_file = []  try:     with open('data.csv', 'r') as csv_string:          for line in csv_string:              cells = line.split(",")              output.append((cells[0], cells[1], cells[5], cells[7], cells[11], cells[13]))                          for lines in output:               #state = cells[0]              zmin = cells[1]   #car = cells[1]             ymin = cells[1]             xmin = cells[5]   #motor = cells[5]              wmin = cells[5]             vmin = cells[7]   #van = cells[7]             zmax = cells[7]             ymax = cells[11]  #airplane = cells[11]             xmax = cells[11]             wmax = cells[13]  #bike = cells[13]              vmax = cells[13]          if cells[1] < xmin:              zmin = cells[1]          if cells[1] > xmax:              zmax = cells[1]           if cells[5] < ymin:              ymin = cells[5]         if cells[5] > ymax:              ymax = cells[5]          if cells[7] < zmin:             xmin = cells[7]         if cells[7] > zmax:              xmax = cells[7]           if cells[11] < zmin:             wmin = cells[11]         if cells[11] > zmax:              wmax = cells[11]          if cells[13] < zmin:             vmin = cells[13]         if cells[13] > zmax:              vmax = cells[13]          outstring = ' '     for item in output:             for cell in item:                 outstring += "{0:<35}".format(cell) #Width/Distance of each row             outstring += " "      print(outstring)      print('Min: ',zmin,ymin,xmin,wmin,vmin)      print('Max: ',state,zmax,ymax,xmax,wmax,vmax)      finally:           f.close()  try:         f_write = open('output.txt', 'w') #creates the file     try:         f_write.writelines(outstring)    finally:           f.close() 

I'm not sure what I am doing wrong. I been reading min and max but I don't understand how this applies in a .csv file while appending 5 columns.

If anyone can offer some guidance, Thank you for your input.

The program prints wrong numbers

 print('Min: ',zmin,ymin,xmin,wmin,vmin)       47.9,  8.1, 5.5, 20.40%, 25.2%   print('Max: ',state,zmax,ymax,xmax,wmax,vmax)        21.8, 9.1, 4.6, 20.40%, 30.9%  
</div
           

Список ответов

2
 
vote
vote
Лучший ответ
 

Вы можете сделать большую часть того, что нужно, используя встроенный <код> csv Module. Вот как найти минимальные и максимальные значения списка полей (или столбцов) данных. Содержимое образца data.csv файл, показанный только в нем интересных полей, но может содержать все 26 столбцов данных, не влияя на код, который обрабатывает только поля, которые имена, которые появляются в <код> FIELDS / код> Список.

 <код> import csv  ID = 'state' FIELDS = ['car', 'motorcycle', 'van', 'airplane', 'bike'] MIN_ID, MIN, MAX_ID, MAX = 0, 1, 2, 3  # indices of data in min_maxes records  with open('data.csv', 'rb') as csv_file:     csv_dict_reader = csv.DictReader(csv_file, delimiter=',')      # initialize min and max values from first row of csv file     row = csv_dict_reader.next()     min_maxes = {field: [row[ID], float(row[field])]*2 for field in FIELDS}      # update min and max values with data from remaining rows of csv file     for row in csv_dict_reader:         for id, value, min_max_rec in (                 (row[ID], float(row[field]), min_maxes[field]) for field in FIELDS):             if value < min_max_rec[MIN]:                 min_max_rec[MIN_ID] = id                 min_max_rec[MIN]    = value             if value > min_max_rec[MAX]:                 min_max_rec[MAX_ID] = id                 min_max_rec[MAX]    = value  print '                   min                  max' for field in FIELDS:     min_max_rec = min_maxes[field]     print '{:10}    {:12}{:4.1f}      {:12}{:4.1f}'.format(field,               min_max_rec[MIN_ID]+':', min_max_rec[MIN],               min_max_rec[MAX_ID]+':', min_max_rec[MAX])   

вход (упрощенный <код> data.csv Файл):

 <Код> state,car,motorcycle,van,airplane,bike Maine,35.5,8.1,5.7,21.0,33.2 Michigan,47.9,9.1,5.5,20.40,25.2 Washington,52.5,1.2,4.6,3.,24.7 Denver,21.8,20.5,5.3,2.90,30.9   

Выход:

 <Код>                    min                  max car           Denver:     21.8      Washington: 52.5 motorcycle    Washington:  1.2      Denver:     20.5 van           Washington:  4.6      Maine:       5.7 airplane      Denver:      2.9      Maine:      21.0 bike          Washington: 24.7      Maine:      33.2   
 

You can do much of what is needed by using Python's built-in csv module. Here's how to find the minimum and maximum values of a list of fields (or columns) of the data. The contents of sample data.csv file shown only has the fields of interest in it, but could contain all 26 columns of data without affecting the code which only processes the fields who's names appear in the FIELDS list.

import csv  ID = 'state' FIELDS = ['car', 'motorcycle', 'van', 'airplane', 'bike'] MIN_ID, MIN, MAX_ID, MAX = 0, 1, 2, 3  # indices of data in min_maxes records  with open('data.csv', 'rb') as csv_file:     csv_dict_reader = csv.DictReader(csv_file, delimiter=',')      # initialize min and max values from first row of csv file     row = csv_dict_reader.next()     min_maxes = {field: [row[ID], float(row[field])]*2 for field in FIELDS}      # update min and max values with data from remaining rows of csv file     for row in csv_dict_reader:         for id, value, min_max_rec in (                 (row[ID], float(row[field]), min_maxes[field]) for field in FIELDS):             if value < min_max_rec[MIN]:                 min_max_rec[MIN_ID] = id                 min_max_rec[MIN]    = value             if value > min_max_rec[MAX]:                 min_max_rec[MAX_ID] = id                 min_max_rec[MAX]    = value  print '                   min                  max' for field in FIELDS:     min_max_rec = min_maxes[field]     print '{:10}    {:12}{:4.1f}      {:12}{:4.1f}'.format(field,               min_max_rec[MIN_ID]+':', min_max_rec[MIN],               min_max_rec[MAX_ID]+':', min_max_rec[MAX]) 

Input (simplified data.csv file):

state,car,motorcycle,van,airplane,bike Maine,35.5,8.1,5.7,21.0,33.2 Michigan,47.9,9.1,5.5,20.40,25.2 Washington,52.5,1.2,4.6,3.,24.7 Denver,21.8,20.5,5.3,2.90,30.9 

Output:

                   min                  max car           Denver:     21.8      Washington: 52.5 motorcycle    Washington:  1.2      Denver:     20.5 van           Washington:  4.6      Maine:       5.7 airplane      Denver:      2.9      Maine:      21.0 bike          Washington: 24.7      Maine:      33.2 
</div
 
 
   
   
4
 
vote

Использование <код> $users=User::with('distributors','distributors.accounts,'accounts.notes')->get(); foreach($users as $user) { foreach($user->distributors as $distributor) { foreach($distributor->accounts as $account) { foreach($account->notes as $note) { print_r($note); } } } } 0 - библиотека, предназначенная для таких данных манипулирования, задача становится Много проще:

 <код> $users=User::with('distributors','distributors.accounts,'accounts.notes')->get(); foreach($users as $user) {    foreach($user->distributors as $distributor)       {             foreach($distributor->accounts as $account)              {                   foreach($account->notes as $note)                     {                         print_r($note);                     }              }      } } 1  

OUT:

 <код> $users=User::with('distributors','distributors.accounts,'accounts.notes')->get(); foreach($users as $user) {    foreach($user->distributors as $distributor)       {             foreach($distributor->accounts as $account)              {                   foreach($account->notes as $note)                     {                         print_r($note);                     }              }      } } 2  
 

Using pandas - a library designed for such data manipulation, the task becomes a lot simpler:

import pandas as pd  c = lambda x: float(x.strip('%')) df = pd.read_csv(f,sep='s+', converters = {'bike':c, 'airplane':c})  vehicles = df.columns[1:]  #['car', 'motorcycle', 'van', 'airplane', 'bike']  max_v = zip(df['state'][df[vehicles].idxmax().values],              df[vehicles].max().values.astype('|S4')) min_v = zip(df['state'][df[vehicles].idxmin().values],             df[vehicles].min().values.astype('|S4'))  max_i = [': '.join(tup) for tup in max_v] min_i = [': '.join(tup) for tup in min_v]  print pd.DataFrame({'min':min_i, 'max':max_i}, index=vehicles) 

out:

                         max               min car         Washington: 52.5      Denver: 21.8 motorcycle      Denver: 20.5   Washington: 1.2 van               Maine: 5.7   Washington: 4.6 airplane         Maine: 21.0       Denver: 2.9 bike             Maine: 33.2  Washington: 24.7 
</div
 
 

Связанный проблема

0  Как бы я избавился от определенных персонажей, а затем выпустите очищенную струну в Python?  ( How would i get rid of certain characters then output a cleaned up string in pyt ) 
В этом фрассетере кода я пытаюсь получить ссылки на изображения, размещенные в группеЧанчатке определенным пользователем: <код> import groupy from groupy im...

2  Запуск кода в Python 3 для использования шагового двигателя  ( Running a code in python 3 to use a stepper motor ) 
Мы пытаемся сделать шаговую моторную работу с помощью Raspberry Pi 3B и драйвера 8825. Однако код, который мы используем, не работает и вызывает ошибку. <ко...

0  Почему это, если вернуться в Python  ( Why this if return true in python ) 
<Код> >>> if '' is not None: ... print'23333' ... 23333 Я думаю (не нет) верно и ('') неверно, так почему он работает печать? ...

0  Python / django - Начало Apache с mod_wsgi  ( Python django starting apache with mod wsgi ) 
пытается запустить mod_wsgi. Получение опорной ошибки связанной с FMOD. <код> [root@host]# mod_wsgi-express start-server wsgi.py --port=80 > --user www...

0  Jupyter Lab / Ubuntu / «Нет модуля по имени BCLZ»  ( Jupyter lab ubuntu no module named bcolz ) 
Bcolz был успешно установлен и может работать в Python3 (попробовал в терминале). Однако, когда я попробовал это в Jupyter Lab (или ноутбук), приходит ошибка:...

1  Где многопроцессор  ( Where is multiprocessing process ) 
Я портирую рабочее приложение из Python 3.3-34 и столкнулся с странной ситуацией. Класс Multipressing.Process отсутствует в загрузке с Python.org. Вместо этог...

0  Объедините несколько столов для ответа JSON в Django Read Framework  ( Combine multiple tables for a json response in django rest framework ) 
Я использую Django Read Framework для моего serializers . Мне нужно создать веб-сервис, который сочетает в себе поля в трех таблицах и дает JSON. У меня ес...

5  Как я могу получить Mercurial для того, чтобы снова выдвигать коммиты?  ( How can i get mercurial to push commits again ) 
Я не знаю, что я ничего изменил и работаю Ubuntu 10.10. Mercurial работает нормально, а затем внезапно, когда я начал толкать сегодня утром, я начал получать ...

2  подмодул .POPEN отказывается запускать команду, хотя OS.System работает нормально  ( Submodules popen refuses to run a command even though os system works fine ) 
Всякий раз, когда я запускаю этот скрипт: <код> gcalctool0 Я постоянно получаю эту ошибку: <код> gcalctool1 Тем не менее, <код> gcalctool2 определе...

-4  Как суммировать значения при заворачивании аналогичного ключа, чтобы построить Dict  ( How to sum values when zipping similar key to build a dict ) 
У меня есть <код> A = [a, b, c, d, a, d, c] и <код> B=[1, 2, 3, 4, 5, 6, 7] Почему <код> dict(zip(A,B)) не возвращается <код> {'a': 6, 'b': 2, 'c': 10, '...

3  Использование None As Parameter к аргументу ключевого слова [дубликат]  ( Using none as parameter to keyword argument ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> Этот вопрос уже имеет ответ здесь : ...

0  Запрос доступа от класса Inherit (View)  ( Access request from inherit class view ) 
Как я могу предъявить запрос на var, если я не реализую методы Get / Post из класса Inherit (View)? <код> class Base(View): def __init__(self): ...

0  Пытаясь создать dataframe из другого dataframe с определенными ограничениями  ( Trying to create a dataframe from another dataframe with certain restrictions ) 
Я пытаюсь написать модель VAR в Python (где не разрешается использовать предварительно сделанные функции, такие как var в Statsmodel). Для этого мне нужна м...

0  Запуск сценария Python со значениями от Views.py в Django  ( Running a python script with values from views py in django ) 
Я пытаюсь передать значение, которое я получил в просмотру .py файл в django в другой сценарий python, который я написал, но я понятия не имею, как это сделат...

0  NameError: Имя «Домашние животные» не определены. Питон  ( Nameerror name pets is not defined python ) 
Это код, который я использую, но каждый раз, когда я пытаюсь запустить его, я получаю эту ошибку в терминале: <код> Traceback (most recent call last): Fil...

Связанный проблема

0  Как бы я избавился от определенных персонажей, а затем выпустите очищенную струну в Python? 
2  Запуск кода в Python 3 для использования шагового двигателя 
0  Почему это, если вернуться в Python 
0  Python / django - Начало Apache с mod_wsgi 
0  Jupyter Lab / Ubuntu / «Нет модуля по имени BCLZ» 
1  Где многопроцессор 
0  Объедините несколько столов для ответа JSON в Django Read Framework 
5  Как я могу получить Mercurial для того, чтобы снова выдвигать коммиты? 
2  подмодул .POPEN отказывается запускать команду, хотя OS.System работает нормально 
-4  Как суммировать значения при заворачивании аналогичного ключа, чтобы построить Dict 
3  Использование None As Parameter к аргументу ключевого слова [дубликат] 
0  Запрос доступа от класса Inherit (View) 
0  Пытаясь создать dataframe из другого dataframe с определенными ограничениями 
0  Запуск сценария Python со значениями от Views.py в Django 
0  NameError: Имя «Домашние животные» не определены. Питон 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.