Hướng dẫn how do i query a csv file in python? - làm cách nào để truy vấn tệp csv trong python?

Đây rõ ràng là một câu hỏi phỏng vấn phổ biến. Có 2 tệp CSV với dữ liệu khủng long. Chúng ta cần truy vấn chúng để trả lại khủng long thỏa mãn một tình trạng nhất định.
There are 2 CSV files with dinosaur data. We need to query them to return dinosaurs satisfying a certain condition.

Lưu ý - Chúng tôi không thể sử dụng các mô -đun bổ sung như Q, FSQL, CSVKIT, v.v.

file1.csv:

NAME,LEG_LENGTH,DIET
Hadrosaurus,1.2,herbivore
Struthiomimus,0.92,omnivore
Velociraptor,1.0,carnivore
Triceratops,0.87,herbivore
Euoplocephalus,1.6,herbivore
Stegosaurus,1.40,herbivore
Tyrannosaurus Rex,2.5,carnivore

file2.csv

NAME,STRIDE_LENGTH,STANCE
Euoplocephalus,1.87,quadrupedal
Stegosaurus,1.90,quadrupedal
Tyrannosaurus Rex,5.76,bipedal
Hadrosaurus,1.4,bipedal
Deinonychus,1.21,bipedal
Struthiomimus,1.34,bipedal
Velociraptor,2.72,bipedal

Sử dụng diễn đàn: Speed ​​= [[stride_length / leg_length] - 1] * sqrt [leg_length * g], trong đó g = 9,8 m / s^2

Viết một chương trình để đọc các tệp CSV và chỉ in tên của khủng long hai chân, được sắp xếp theo tốc độ từ nhanh nhất đến chậm nhất.

Trong SQL, điều này sẽ đơn giản:

select f2.name from
file1 f1 join file2 f2 on f1.name = f2.name
where f1.stance = 'bipedal'
order by [f2.stride_length/f1.leg_length - 1]*pow[f1.leg_length*9.8,0.5] desc

Làm thế nào điều này có thể được thực hiện trong Python?

Querycsv.py là một mô-đun và chương trình Python cho phép bạn thực thi mã SQL so với dữ liệu có trong một hoặc nhiều tệp giá trị phân tách dấu phẩy [CSV]. Đầu ra của truy vấn SQL sẽ được hiển thị trên bảng điều khiển theo mặc định, nhưng có thể được lưu trong tệp CSV mới. is a Python module and program that allows you to execute SQL code against data contained in one or more comma-separated-value [CSV] files. The output of the SQL query will be displayed on the console by default, but may be saved in a new CSV file.

Khả năng

Các hành động có thể được thực hiện với chương trình QueryCSV bao gồm:querycsv program include:

  • Thực hiện một câu lệnh SQL duy nhất, được chỉ định trên dòng lệnh, so với dữ liệu được chỉ định.
  • Thực hiện nhiều câu lệnh SQL, đọc từ tệp tập lệnh, so với dữ liệu được chỉ định.
  • Đọc dữ liệu từ một hoặc nhiều tệp CSV hoặc từ tệp dữ liệu SQLite.
  • Tạo một tệp CSV mới chứa dữ liệu được chọn, tóm tắt, dữ liệu.
  • Tạo tệp dữ liệu SQLite từ một hoặc nhiều tệp CSV. Tệp SQLite sau đó có thể được sử dụng bởi QueryCSV hoặc bởi các chương trình khác, chẳng hạn như shell python sqliteplus.querycsv or by other programs, such as the Python Sqliteplus shell.

Cú pháp và tùy chọn

querycsv.py -i [Tùy chọn khác] [select_stmt] Tùy chọn: -i tên tệp CSV đầu vào. Nhiều tùy chọn -i có thể được sử dụng để chỉ định nhiều hơn một tệp đầu vào. -u Sử dụng tệp SQLite được chỉ định cho đầu vào. Tùy chọn -i, -f và -K bị bỏ qua nếu -U được chỉ định -o gửi đầu ra đến tệp CSV có tên. -s thực thi tập lệnh SQL từ tệp được đưa ra dưới dạng đối số. -f sử dụng tệp sqlite thay vì bộ nhớ để lưu trữ trung gian. -K giữ tệp sqlite khi hoàn thành [chỉ hợp lệ với -f]. -H in sự giúp đỡ và thoát này.

Ghi chú

  1. Dòng đầu tiên của mỗi tệp đầu vào [CSV] phải chứa tên cột
  2. Tên bảng được sử dụng trong SQL phải khớp với tên tệp CSV đầu vào, không có đường dẫn hàng đầu hoặc phần mở rộng tên tệp.
  3. Khi nhiều tệp đầu vào [hoặc tệp sqlite có nhiều bảng] được sử dụng, các điều khoản SQL tham gia có thể được sử dụng để kết hợp dữ liệu.
  4. Khi một tệp tập lệnh SQL được sử dụng thay vì một SQL Commmand duy nhất trên dòng lệnh, chỉ đầu ra của lệnh SQL cuối cùng sẽ được hiển thị.
  5. Đầu ra vào bảng điều khiển [mặc định] được định dạng cho khả năng đọc. Đầu ra vào tệp đĩa được định dạng là CSV, với dấu phẩy phân định các cột và dấu ngoặc kép xung quanh chuỗi.
  6. Mục đích dự định chính của câu lệnh SQL dòng lệnh là thực thi câu lệnh CHỌN hoặc Liên minh đối với dữ liệu và việc cập nhật và chèn các câu lệnh không có bất kỳ ảnh hưởng nào đến [các] tệp CSV đầu vào. Tuy nhiên, một hiệu ứng tương đương với câu lệnh Update có thể đạt được với các câu lệnh được chọn, với đầu ra được chuyển đến tệp CSV mới. Để thực hiện Opertation chèn, cần lưu dữ liệu trong tệp sqlite hoặc sử dụng tệp tập lệnh với các câu lệnh chèn và chọn riêng.
  7. Các tính năng ngôn ngữ SQL có thể được sử dụng với QueryCSV là những tính năng được hỗ trợ bởi ngôn ngữ SQLite.querycsv are those supported by the Sqlite language.

Ví dụ

Cho một tệp dữ liệu đầu vào có tên TestData.csv trông như thế này:testdata.csv that looks like this:

"location_id", "sample_date", "sample_id", "vật liệu", "chất phân tích", "value", "đơn vị", "sme "," 05144404 "," trầm tích "," nhôm "," 7310 "," mg/kg "," khô "," "" RM708B1 "," 2005-04-07 00:00:00 " , "Trầm tích", "antimon", "6.2", "mg/kg", "khô", "uj" "rm708b1", "2005-04-07 00:00:00", "05144404", "trầm tích" , "Arsenic", "3,9", "mg/kg", "khô", "u" "rm708b1", "2005-04-07 00:00:00", "05144404", "trầm tích", "bari" , "101", "mg/kg", "khô", "" "RM708B1", "2005-04-07 00:00:00", "05144404", "trầm tích", "beryllium", "0,36", "mg/kg", "khô", "j" "rm708b1", "2005-04-07 00:00:00", "05144404", "trầm tích", "cadmium", "1.6", "mg/kg ","khô","" . . . . . .

Sau đây là một số ví dụ về cách sử dụng QueryCSV.querycsv could be used.

Chạy một câu lệnh Chọn đơn giản để trích xuất và hiển thị dữ liệu

Mật mã

querycsv.py -i testData.csv "Chọn chất phân tích khác biệt từ TestData;"

sẽ tạo ra đầu ra như sau.

Phân tích =========== Nhôm antimon arsenic beryllium beryllium cadmium. . . . . .

Chạy một câu lệnh Chọn đơn giản để trích xuất dữ liệu vào tệp CSV mới

Mật mã

querycsv.py -i testData.csv -o maxConc.csv "Chọn chất phân tích, MAX [giá trị] từ nhóm testData bởi Analyte;"

sẽ tạo một tệp CSV mới có tên là "MaxConc.csv" với các nội dung sau.

"Phân tích", "Max [giá trị]" "nhôm", "7310" "antimon", "7,9" "asen", "6.8" "bari", "863" "beryllium", "1.4" "cadmium", " 4.7 ". . . . . .

Thực hiện nhiều câu lệnh SQL bằng tệp tập lệnh

Để xem số lượng mẫu mà mỗi chất phân tích đã được đo trong tệp dữ liệu đã cho, các lệnh SQL sau đây có thể được sử dụng.

Tạo View V_Sampanal như chọn Sample_id khác biệt, Chất phân tích từ TestData; Chọn Chất phân tích, Đếm [Sample_id] làm NUM_SAMPS từ nhóm V_Sampanal bằng chất phân tích;

Nếu các lệnh này được lưu trong một tệp văn bản có tên là "sampcount.sql", mã sau

querycsv.py -i testdata.csv -s sampcount.sql "

sẽ tạo ra đầu ra như sau.

Phân tích | num_samp ======================== Aluminum | 5 antimon | 5 asen | 5 Barium | 5 beryllium | 5 cadmium | 5. . . . . .

Lưu ý rằng đây là một ví dụ giả định, vì kết quả tương tự có thể thu được với một lệnh duy nhất như sau.

querycsv.py -i testData.csv "Chọn Chuẩn bị phân tích, đếm [sample_id] là num_samp từ nhóm [chọn Sample_id, chất phân tích từ TestData] của TestData] bằng chất phân tích;"

Tuy nhiên, các tập tin tập lệnh có thể hữu ích để giải quyết các vấn đề truy vấn phức tạp hơn. Lưu ý rằng chỉ đầu ra của lệnh SQL cuối cùng trong tệp script được hiển thị, để nếu nếu đầu vào được lấy từ tệp sqlite và chế độ xem được tạo [như trong tập lệnh ví dụ ở trên], thì một lệnh để bỏ chế độ xem nên Không phải là lệnh cuối cùng trong tệp tập lệnh.

Phần cuối của mỗi lệnh SQL trong tệp tập lệnh được xác định bởi một dòng kết thúc bằng dấu chấm phẩy. Các dòng bình luận được phân biệt bởi hai dấu gạch ngang ["-"] ở đầu một dòng. Không có phân tích cú pháp hoặc giải thích tinh vi hơn của các lệnh SQL được thực hiện, vì vậy các lệnh và lệnh SQL không nên được đặt trên cùng một dòng, cũng như hai lệnh SQL khác nhau được đặt trên cùng một dòng.

Tạo và sử dụng tệp SQLite

Các tùy chọn "-f" và "-k" có thể được sử dụng để tạo tệp sqlite, như sau.

querycsv.py -i testData.csv -f testData.sqlite -k "Chọn * từ TestData.csv Giới hạn 1;"

Lệnh SQL được sử dụng trong dòng lệnh trước đó có thể hoặc không thể tạo ra đầu ra hữu ích, nhưng nó phải có mặt.

Tệp SQLite được tạo sau đó có thể được sử dụng như sau.

querycsv.py -U testData.sqlite "Chọn vị trí khác biệt_id từ TestData;"

Lưu ý rằng [các] tên của [các] bảng trong tệp sqlite phải được biết đến; Họ sẽ không nhất thiết phải khớp với tên của tệp SQLite.

Bản quyền và giấy phép

Bản quyền [c] 2008, R.Dreas Nielsen

Chương trình này là phần mềm miễn phí: Bạn có thể phân phối lại và/hoặc sửa đổi nó theo các điều khoản của Giấy phép công cộng GNU được xuất bản bởi Quỹ phần mềm miễn phí, phiên bản 3 của giấy phép hoặc [theo tùy chọn của bạn] bất kỳ phiên bản nào sau này. Chương trình này được phân phối với hy vọng rằng nó sẽ hữu ích, nhưng không có bất kỳ bảo hành nào; thậm chí không có bảo hành ngụ ý về tính thương mại hoặc thể lực cho một mục đích cụ thể. Xem Giấy phép Công cộng GNU để biết thêm chi tiết. Giấy phép công cộng GNU có sẵn tại //www.gnu.org/licenses/.

Làm cách nào để truy vấn tệp CSV?

Sau khi bắt đầu công cụ:..
Nhấp vào "DataSource ..." ..
Chọn nguồn dữ liệu tệp của bạn mà bạn đã tạo trước đó [ví dụ: "Kiểm tra"] ..
Trong loại khung truy vấn "Chọn * từ [Tên tệp. CSV]" ..
Nhấp vào "Thực thi" ..

Lệnh nào đọc các tệp CSV trong Python?

Đọc từ tệp CSV được thực hiện bằng cách sử dụng đối tượng đầu đọc.Tệp CSV được mở dưới dạng tệp văn bản với hàm Open in [] tích hợp của Python, trả về một đối tượng tệp.reader object. The CSV file is opened as a text file with Python's built-in open[] function, which returns a file object.

Làm thế nào để bạn lưu trữ truy vấn SQL dẫn đến một tệp CSV bằng Python?

Các bước để xuất bảng SQL Server sang CSV bằng Python..
Bước 1: Cài đặt gói PYODBC.Nếu bạn chưa làm như vậy, hãy cài đặt gói PyodBC bằng lệnh bên dưới [bên dưới Windows]: PIP Cài đặt PYODBC.....
Bước 2: Kết nối Python với SQL Server.....
Bước 3: Xuất bảng SQL Server sang CSV bằng Python ..

Làm thế nào để bạn viết một truy vấn trong Python?

Dưới đây là những bước đơn giản để bắt đầu ...
Bước 1 - Nhập SQLite và gấu trúc.Để bắt đầu, chúng tôi sẽ cần nhập SQLite vào sổ ghi chép Jupyter của chúng tôi.....
Bước 2 - Kết nối cơ sở dữ liệu của bạn.....
Bước 3 - Đối tượng con trỏ.....
Bước 4 - Viết một truy vấn.....
Bước 5 - Truy vấn chạy.....
Bước 6 - Đóng kết nối của bạn.....
Bước 7 - Phần thưởng [tại sao Python với SQL?].

Bài Viết Liên Quan

Chủ Đề