Hướng dẫn python extract specific data from csv file - python trích xuất dữ liệu cụ thể từ tệp csv

0

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có tệp .csv chứa tiền tệ và tỷ lệ của nó. Tôi muốn trích xuất dữ liệu được tô sáng từ .csv và lưu trữ nó trong biến.

Làm thế nào tôi có thể làm điều đó bằng cách sử dụng Python?

Hướng dẫn python extract specific data from csv file - python trích xuất dữ liệu cụ thể từ tệp csv

Tôi hiện đang là người mới bắt đầu ở Python và tôi có rất nhiều điều để học.

Hỏi ngày 11 tháng 10 năm 2021 lúc 10:18Oct 11, 2021 at 10:18

Xem xét tệp .csv của bạn chỉ chứa bảng như vậy, bạn có thể mở và nhận dữ liệu bạn muốn từ nó trong Python bằng Pandas:

import pandas as pd
# Open the csv file
data = pd.read_csv("yourfilename.csv")
# Get the value
data.loc[data["Curr"] == "GBP", "Rates"][1]

Để giải quyết vấn đề của bạn với các tên bị thiếu trong tiêu đề, bạn có thể bỏ qua hàng đầu tiên và thêm tên cột tùy chỉnh:

# Open the csv file
colnames = ["currency", "rate"]
data = pd.read_csv("yourfilename.csv", names=colnames, skiprows=(0,))
# Get the value
data.loc[data["currency"] == "GBP", "rate"][1]

Đã trả lời ngày 11 tháng 10 năm 2021 lúc 10:46Oct 11, 2021 at 10:46

Hướng dẫn python extract specific data from csv file - python trích xuất dữ liệu cụ thể từ tệp csv

XGSKTXXGSKTXxgsktx

Phù hiệu đồng 1481111 bronze badges

2

Cách tốt nhất (và cách phổ biến) để làm điều đó là bằng cách sử dụng một gói gọi là gấu trúc.Pandas.

Bạn có thể cài đặt nó bằng cách nhập PIP Cài đặt gấu trúc vào thiết bị đầu cuối của bạn.pip install pandas in your terminal.

Nếu bạn đang sử dụng môi trường Anaconda, nó đã được cài đặt. Bỏ qua đoạn văn "Anaconda" này nếu bạn không biết tôi đang nói về điều gì (cuối cùng Google nó).

Với gấu trúc bạn có thể làm điều này:

# Import pandas package
import pandas as pd

# Read your file as a dataframe
myDataframe = pd.read_csv("filename.csv")

# Convert 'Rates' column to float (if needed)
myDataframe = myDataframe.astype({"Rates":"float"})

# Extract the 'interesting' row by using this notation
interestingRow = myDataframe[myDataframe["Curr"] == "GBP"]

# Extract the rate value from the row
theRate = interestingRow["Rates"]

Đã trả lời ngày 11 tháng 10 năm 2021 lúc 10:36Oct 11, 2021 at 10:36

1

Đôi khi, bạn sẽ có một tệp CSV chứa nhiều thông tin hữu ích, nhưng trong đó một số thông tin không chính xác ở dạng mà bạn cần. Hơn nữa, thường rất hữu ích khi trích xuất một tập hợp thông tin từ một tệp lớn và phức tạp sang một tệp riêng mà bạn sử dụng cho các mục đích thử nghiệm khác.

Hướng dẫn này giải thích cách trích xuất tên địa điểm từ tệp CSV, làm sạch chúng một chút và lưu chúng vào một tệp văn bản thông thường bằng Python.


Tôi có một tập tin CSV về các trận chiến Nội chiến trông như thế này:

Battle,Other Names,Location 1
Fort Sumter,,'Charleston County,SC'
Sewell's Point,,'Norfolk City,VA'
Aquia Creek,,'Stafford County,VA'
Philippi,Philippi Races,'Barbour County,WV'
Big Bethel,'Bethel Church,Great Bethel','York County,VA'

Cuối cùng, tôi muốn ánh xạ tất cả các trang web chiến đấu này, nhưng trước tiên tôi cần định vị địa lý tất cả các vị trí như được liệt kê trong tệp CSV. Thay vì cố gắng định vị địa lý từ những nơi trong tệp CSV gốc (khá dài), tôi muốn cô lập các địa điểm trong một tệp riêng biệt để tôi có thể làm việc với những nơi đó. Python làm cho điều này trở thành một cinch.

Điều đầu tiên cần làm là mở CSV ban đầu của tôi và đọc nó. Một cách tiêu chuẩn để mở các tệp để đọc (do đó, R Riêu bên dưới) giống như vậy:

inputfile = open('civil-war-battles.csv','r')

Điều này không hữu ích trong bản thân nó, vì vậy hãy để lặp lại tất cả các dòng trong tệp đó và in chúng, chỉ để đảm bảo chúng ta có thể làm điều gì đó với chúng.

inputfile = open('civil-war-battles.csv','r')

for row in inputfile:
    print row

Điều này tất nhiên in ra tệp CSV ban đầu của chúng tôi. Bây giờ, chúng tôi thực sự chỉ muốn trích xuất vị trí của chúng tôi, điều mà chúng tôi có thể làm theo bất kỳ cách nào. May mắn thay, Python làm cho nó rất dễ đọc và viết các tệp CSV có thể làm rất nhiều việc chăm chỉ cho chúng tôi. Hãy để sử dụng mô -đun CSV, chúng tôi có thể nhập ở đầu tệp và sử dụng để đọc trong tệp CSV.

import csv

inputfile = csv.reader(open('civil-war-battles.csv','r'))

for row in inputfile:
    print row

Nếu chúng tôi kiểm tra đầu ra của tệp này, chúng tôi có thể thấy rằng nó trông giống như

['Battle','Other Names','Location 1']
['Fort Sumter','','Charleston County , SC']
['Sewell's Point','','Norfolk City , VA']
['Aquia Creek','','Stafford County , VA']
['Philippi','Pilippi Races','Barbour County , WV']
['Big Bethel','Bethel Church, Great Bethel','York  County, VA']

Điều này rất thuận tiện vì phương thức CSV.Reader mà chúng tôi gọi là đã tự động chuyển đổi từng hàng của tệp thành danh sách Python. Điều này giúp dễ dàng truy cập các yếu tố cụ thể của tệp CSV. Nếu chúng ta sử dụng cú pháp Python thông thường để truy cập một phần tử của danh sách ở đâu đó vị trí của chúng ta là cột thứ 3, nhưng các máy tính luôn đếm bắt đầu với 0, ROW [2] sẽ cung cấp cho chúng ta các vị trí của chúng ta. Chúng ta có thể chỉ in các vị trí khi chúng ta đã thực hiện toàn bộ dòng của tệp CSV.

import csv

inputfile = csv.reader(open('civil-war-battles.csv','r'))

for row in inputfile:
    print row[2]

Sản lượng này:

Location 1
Charleston County , SC
Norfolk City , VA
Stafford County , VA
Barbour County , WV
York County, VA

Tiến triển. Nhưng thật khó chịu khi dữ liệu gốc có sự không nhất quán, như không gian (hoặc không) trước dấu phẩy. Các vấn đề như thế này là khá phổ biến. Nó rất dễ dàng để sửa chúng. Hãy để chỉ tìm thấy mọi trường hợp của một không gian và dấu phẩy cùng nhau (‘,) và thay thế nó bằng dấu phẩy Singe (‘, Hồi).

Chúng ta có thể sử dụng phương thức thay thế được tích hợp vào các đối tượng chuỗi trong Python, được sử dụng như:

# Open the csv file
colnames = ["currency", "rate"]
data = pd.read_csv("yourfilename.csv", names=colnames, skiprows=(0,))
# Get the value
data.loc[data["currency"] == "GBP", "rate"][1]
0

Trong trường hợp của chúng tôi, x là chuỗi theo nghĩa đen của một không gian và dấu phẩy; Y là chuỗi theo nghĩa đen chỉ là dấu phẩy:

# Open the csv file
colnames = ["currency", "rate"]
data = pd.read_csv("yourfilename.csv", names=colnames, skiprows=(0,))
# Get the value
data.loc[data["currency"] == "GBP", "rate"][1]
1

Tích hợp điều này vào mã của chúng tôi, chúng tôi có:

# Open the csv file
colnames = ["currency", "rate"]
data = pd.read_csv("yourfilename.csv", names=colnames, skiprows=(0,))
# Get the value
data.loc[data["currency"] == "GBP", "rate"][1]
2

Càng xa càng tốt. Nhưng chỉ cần in các địa điểm không hữu ích, mặc dù đó là một cách dễ dàng để chúng ta thấy rằng mọi thứ đang hoạt động cho đến nay. Thay vào đó, hãy để các vị trí vào một tập tin. Chúng tôi chỉ cần thêm hai dòng mã: một để mở tệp để viết và một để thực sự viết vị trí.

# Open the csv file
colnames = ["currency", "rate"]
data = pd.read_csv("yourfilename.csv", names=colnames, skiprows=(0,))
# Get the value
data.loc[data["currency"] == "GBP", "rate"][1]
3

Lưu ý rằng chúng tôi không mở tệp đầu ra với mô -đun CSV, chỉ với Python thông thường vì chúng tôi tạo ra một tệp CSV, chỉ là một tệp văn bản. Cũng lưu ý rằng chúng tôi muốn nối một ký tự Newline, \ n, vào mỗi dòng trong tệp để mỗi vị trí có dòng riêng trong tệp.

Kiểm tra tệp placelist.txt của bạn để đảm bảo nó có vẻ tốt

# Open the csv file
colnames = ["currency", "rate"]
data = pd.read_csv("yourfilename.csv", names=colnames, skiprows=(0,))
# Get the value
data.loc[data["currency"] == "GBP", "rate"][1]
4

Chúng tôi có thể làm sạch điều này nhiều hơn một chút bằng cách bỏ qua dòng trong tệp CSV có chứa các tiêu đề, như vị trí 1. Một cách dễ dàng để làm điều này là theo dõi hàng nào của tệp chúng ta đang bật trong khi chúng ta lặp đi qua nó và bỏ qua cái đầu tiên (sẽ là hàng 0).

Để thực hiện một bộ đếm, chúng ta cần xác định một biến trước khi vòng lặp của chúng ta bắt đầu và tăng thêm một lần mỗi lần chúng ta đi qua vòng lặp (= mỗi hàng trong tệp)

# Open the csv file
colnames = ["currency", "rate"]
data = pd.read_csv("yourfilename.csv", names=colnames, skiprows=(0,))
# Get the value
data.loc[data["currency"] == "GBP", "rate"][1]
5

Để bỏ qua hàng đầu tiên, chúng ta chỉ cần kiểm tra xem chúng ta có ở dòng 0 hay không. Một cách khác để suy nghĩ về nó là chúng tôi chỉ muốn viết vào tệp của mình nếu chúng tôi ở dòng 1 hoặc lớn hơn (tức là không phải 0).

# Open the csv file
colnames = ["currency", "rate"]
data = pd.read_csv("yourfilename.csv", names=colnames, skiprows=(0,))
# Get the value
data.loc[data["currency"] == "GBP", "rate"][1]
6

Lưu ý tầm quan trọng của thụt lề. Chúng tôi không muốn mã I+= 1 của chúng tôi thành một phần của khối IF, hoặc nó sẽ không bao giờ chạy!

Bạn có thể sử dụng logic tương tự này để giúp bản thân làm việc với các tệp dễ quản lý hơn. Hãy để nói rằng bạn có một tệp CSV lớn và bạn đang hy vọng địa lý hóa tất cả các địa điểm. Thay vì kiểm tra mã của bạn trên một tệp lớn có thể mất nhiều thời gian và giới thiệu khó tìm lỗi, nó thường dễ dàng hơn khi chỉ trích xuất một tập hợp dữ liệu và quay lại tệp lớn sau đó. Đặc biệt đối với dữ liệu lịch sử lộn xộn, thực tế là tốt để đảm bảo logic và quy trình chung của bạn hoạt động trên dữ liệu được hình thành tốt, sau đó thử các tập hợp con lớn hơn và giải quyết các vấn đề mà dữ liệu lộn xộn sẽ đưa ra (và nó sẽ!). Nói cách khác, mọi thứ hoạt động cho một lượng nhỏ dữ liệu, sau đó mở rộng quy mô.

Trong trường hợp của chúng tôi, chúng tôi có thể giới hạn kích thước của tệp đầu ra bằng cách không ghi vào tệp nếu bộ đếm của chúng tôi vượt qua một số ngưỡng. Vì vậy, nếu chúng tôi chỉ muốn viết 2 dòng đầu tiên, chúng tôi có thể thêm ràng buộc đó vào câu lệnh hiện tại của chúng tôi (dòng 11) kiểm tra xem chúng tôi có ở dòng 0 của tệp CSV của chúng tôi không.

# Open the csv file
colnames = ["currency", "rate"]
data = pd.read_csv("yourfilename.csv", names=colnames, skiprows=(0,))
# Get the value
data.loc[data["currency"] == "GBP", "rate"][1]
7

Làm cách nào để lấy dữ liệu cụ thể của tệp CSV trong Python?

Đọc CSV bằng mô -đun sẵn có của Python có tên CSV bằng CSV ...
Nhập thư viện CSV. Nhập CSV ..
Mở tệp CSV. Các . ....
Sử dụng đối tượng CSV.Reader để đọc tệp CSV. csvreader = csv.Reader (tệp).
Trích xuất tên trường. Tạo một danh sách trống gọi là tiêu đề. ....
Trích xuất các hàng/hồ sơ. ....
Đóng tệp ..

Làm cách nào để trích xuất một hàng từ tệp CSV trong Python?

Bước 1: Tải tệp CSV bằng phương thức mở trong đối tượng tệp. Bước 2: Tạo đối tượng đầu đọc với sự trợ giúp của phương thức dicTreader bằng FileObject. Đối tượng đầu đọc này còn được gọi là một trình lặp có thể được sử dụng để tìm nạp dữ liệu hàng theo hàng. Bước 3: Sử dụng cho vòng lặp trên đối tượng đầu đọc để có được mỗi hàng.

Bạn có thể truy vấn một tệp CSV trong Python không?

QueryCSV - Truy vấn một tệp CSV.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.querycsv.py 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.

Làm cách nào để trích xuất một cột cụ thể từ một khung dữ liệu trong Python?

Trích xuất nhiều cột từ DataFrame..
Cú pháp: biến_name = dataFrame_name [Row (s), cột (s)].
Ví dụ 1: A = DF [C (1,2), C (1,2)].
Giải thích: Nếu chúng ta muốn trích xuất nhiều hàng và cột, chúng ta có thể sử dụng c () với tên hàng và tên cột làm tham số.....
Ví dụ 2: b = df [c (1,2), c (id id, tên tên)]].