Hướng dẫn python find max in csv - python tìm thấy tối đa trong csv
Vấn đề ở đây là bạn đang xây dựng một danh sách các chuỗi cột 1, nhưng sau đó mong đợi sẽ tìm Max làm số, không phải là một chuỗi. Show Bạn có thể sửa nó bằng cách xây dựng danh sách các chuỗi cột 1 được ánh xạ tới các số nguyên, như các câu trả lời khác cho thấy:
Nhưng một cách khác là sử dụng chức năng chính cho
Thậm chí tốt hơn, bạn có thể sử dụng cùng một ý tưởng để không cần toàn bộ danh sách ____10 riêng biệt đó:
Điều này có nghĩa là bạn có được toàn bộ hàng ban đầu, không chỉ là giá trị số nguyên. Vì vậy, nếu, nói, cột 2 là tên người dùng đi với doanh thu trong cột 1, bạn có thể làm điều này:
Điều này cũng tránh xây dựng toàn bộ danh sách khổng lồ trong bộ nhớ; Nó chỉ đọc từng hàng vào bộ nhớ một lần và sau đó loại bỏ chúng, và chỉ nhớ lại lớn nhất. Điều này thường tuyệt vời, nhưng nó có một vấn đề tiềm năng: nếu bạn thực sự cần quét các giá trị hai hoặc nhiều lần thay vì chỉ một lần, lần đầu tiên đã tiêu thụ tất cả các hàng, vì vậy lần thứ hai sẽ không tìm thấy bất kỳ. Ví dụ, điều này sẽ tăng một ngoại lệ trong cuộc gọi thứ hai:
Giải pháp lý tưởng là tổ chức lại mã của bạn để chỉ quét các hàng một lần. Ví dụ: nếu bạn hiểu cách thức hoạt động của 1 và max , bạn có thể xây dựng chức năng 3 của riêng mình, cả hai cùng một lúc, và sau đó sử dụng nó như thế này:
Nhưng đôi khi điều đó là không thể, hoặc ít nhất là không thể theo cách bạn có thể tìm ra cách viết dễ đọc. Tôi sẽ cho rằng bạn không biết cách viết 3. Vậy, bạn có thể làm gì?Bạn có hai tùy chọn ít hơn lý tưởng, nhưng thường vẫn được chấp nhận: đọc toàn bộ tệp vào bộ nhớ hoặc đọc tệp nhiều lần. Đây là cả hai.
Trong trường hợp của bạn, nếu có vẻ như tệp CSV nhỏ, thì nó không thực sự quan trọng đến thế, nhưng có lẽ tôi sẽ làm cái đầu tiên. Xin chào mọi người, tôi thực sự mới đối với Python và cần một số trợ giúp tìm kiếm giá trị tối đa/cao nhất trong một cột dữ liệu được nhập từ tệp CSV. Tôi đã thử mã này và nó cho tôi câu trả lời sai. Tôi làm sai ở đâu? Chào mọi người , Bất kỳ ai cũng có thể trợ giúp để có được các giá trị tối đa và tối thiểu từ một cột ACSV được chỉ định. Tệp*CSV lớn*và do đó mã bên dưới đã bị hỏng.* Open (FileName, 'RB') as f: reader = csv.Reader (f, delimiter = ",") ] cho rec in reader) in ít nhất col_min (str ("độ trễ máy chủ")) col_min (str ("độ trễ máy khách")) f.close () *Maximum.py:*Nhập csvfilename = "testLog_4.csv" f = open (tên tệp) def col_max (maxcname): với open (tên tệp, 'rb') là f: reader = csv.reader (f, delimiter = " ") col_max (str ("độ trễ máy chủ")) col_max (str ("độ trễ máy khách")) f.close () Cảm ơn -------------- Phần tiếp theo -------------- Một tệp đính kèm HTML đã bị chà ... url: Tôi nghĩ rằng bạn sẽ được hưởng lợi từ việc đọc dữ liệu vào một mảng numpy trước, sau đó sử dụng các hàm Numpy Min, Max. Đăng bởi Prakash JPHI Tất cả, bất kỳ ai cũng có thể giúp lấy các giá trị tối đa và tối thiểu từ một cột ACSV được chỉ định. Tệp*CSV lớn*và do đó mã bên dưới đã trở nên xấu. ") Độ trễ ")) Tiếp theo (người đọc) .index (maxcname) #print col_indexhighest = max (rec [col_index] cho rec in inter) Cảm ơn--http: //mail.python.org/mailman/listinfo/python-list --View Thông điệp này trong bối cảnh: http://old.nabble.com/find-max-and-min-values-from-a-pract-of-a-csv-file-tp3201186132012126.htmlsent từ Python-Python -Lưu trữ danh sách gửi thư tại nabble.com. Cảm ơn các đề xuất. Cảm thấy chủ đề có thể giúp đỡ onconsoliding các giải pháp. *Giá trị tối đa từ cột CSV:* Nhập numpydata1 = numpy.genfromtxt ("data.csv", dtype = 'float', delimiter = ',', skiprows = 1, skip_header = 0, skip_footer = 0, usecols = 11, usemask = true) #print dữ liệu1print. Max () Làm ơn đi qua liên kết dưới đây để hiểu thêm về các đối số Takenby numpy.genFromTXT (): http://docs.scipy.org/doc/numpy-1.4.x/reference/generated/numpy.genfromtxt.html Cảm ơn -------------- Phần tiếp theo -------------- Một tệp đính kèm HTML đã bị chà ... url: Đăng bởi Prakash JPCould bất kỳ một trợ giúp nào để nhận các giá trị tối đa và tối thiểu từ một cột ACSV được chỉ định. Tệp*CSV lớn*và do đó mã bên dưới đã trở nên xấu. ") Độ trễ ")) f.close () Tôi không thấy một cách để làm cho điều này nhanh hơn nhiều vì nó có lẽ đã bị ràng buộc bởi I/O. Bạn có thể thử và tính toán tất cả bốn Extrema cùng một lúc, vì vậy bạn chỉ cần thông báo qua tệp một lần: $ CAT CSV_MINMAX_CHUNKED.PY#! def make_key (chỉ mục, loại): khóa def (hàng): loại trả về (hàng [index]) phím trả về Trình tổng hợp lớp (đối tượng): def __init __ (self, name, index, type, key = none): self.name = nameelf.index = index self {"khóa": khóa} nếu không phải là không ai khác {} def __repr __ (self): return "{0} (name = {1}, index = {2}, type = {3}". tự) .__ name__, self.name, self.index, self.type) def __str __ (self): thử: return " %s: %s ... %s" %(self.name, self.min, self. tối đa) ngoại trừ thuộc tínhRorror: return " % s: (không có giá trị)" % self.namedef update (self, rows): value = map (self.getValue, hàng) chunkmin = min (giá trị, ** self.key) ChunkMax = Max (Giá trị, ** self.key) Hãy thử: Curmin = self.MinCurMax = self.MaxExcept AportorRor: self.min = ChunkMinelf. .Max = Max (Curmax, Chunkmax, ** self.key) DEF DENCE (S): Trả lại s Convert = {"float": (float,), "int": (int,), "văn bản": (lambda s: s, locale.strxfrm), "": (nhận dạng,)} def main (): locale.setlocale (locale.lc_all, "") Nhập argparseparser = argparse.argumentparser () Parser.add_argument ("csvfile") Parser.add_argument ("cột", nargs = "+") Parser.add_argument (" = 2 ** 12) args = Parser.parse_args () ntpairs = (cột. Tên, INDEX) cho chỉ mục, Tên Inenumerate (Tiếp theo (hàng)))) . AGG Nếu __name__ == "__main __": main () $ head sample.csvalpha, beta, gamma, delta69, -454,460960, elijah92,796,27885, 518.327010, McMahon84,604.540764, DEVENTION83,117,621832, Chủ nghĩa ăn chay61,411,844243, TAN29, -147,982043, Plushest. Floatdelta Delta: Textalpha (int): 0 ... 99beta (int): -1000 ... 999beta (str): -1 ... .? tudesdelta (văn bản): một ... Zyuganov's Làm thế nào để bạn tìm thấy giá trị trung bình của tệp CSV trong Python?Các bước để tính toán số liệu thống kê từ tệp CSV đã nhập.. Bước 1: Sao chép tập dữ liệu vào tệp CSV.Để bắt đầu, bạn sẽ cần sao chép bộ dữ liệu trên vào tệp CSV..... Bước 2: Nhập tệp CSV vào Python..... Bước 3: Sử dụng gấu trúc để tính toán số liệu thống kê từ tệp CSV đã nhập .. Làm cách nào để đọc một hàng cụ thể trong tệp CSV trong Python?Sử dụng độc giả.. Bước 1: Để đọc các hàng trong Python, trước tiên, chúng ta cần tải tệp CSV trong một đối tượng.Vì vậy, để tải tệp CSV vào một đối tượng sử dụng phương thức Open () .. Bước 2: Tạo đối tượng đầu đọc bằng cách chuyển đối tượng tệp được tạo ở trên cho hàm đầu đọc .. Bước 3: Sử dụng cho vòng lặp trên đối tượng đầu đọc để có được mỗi hàng .. Làm cách nào để tổng hợp một cột trong CSV Python?Làm cách nào để tổng hợp một cột trong Python CSV ?.. Nhập Gandas dưới dạng PD .. Dữ liệu = pd.read_csv ('pandas.csv'). df = pd.DataFrame (dữ liệu). id_sum = 0 .. data_sum = 0 .. Đối với I trong phạm vi (Len (DF)):. if (i == len (df) -2 hoặc i == len (df) -1):. id_sum = id_sum + df.ILOC [i] [0]. |