Tôi muốn tạo một bảng thành biến một cái gì đó trông giống như tệp CSV thực tế:
Length Price Code
10.05 0.78 AB89H
20 5 HB20K
Đây là điều mà những gì tôi làm cho mọi chức năng tôi đang làm việc vì vậy có lẽ tôi có thể làm điều đó một lần có lẽ ...
tree_file.readline[] # skip first row
for row in tree_file:
field=row.strip[]
field=field.split[","] #make Into fields
price=int[field[1]]
Tôi muốn một hàm tạo bảng từ tệp CSV để tôi có thể sử dụng bảng này cho tất cả các chức năng khác của mình. Vì vậy, tôi không phải tất cả thời gian mở tệp CSV trong mỗi hàm và tước chúng và làm cho chúng trong trường.
Tôi không cần phải in bảng thực tế!
Đã hỏi ngày 7 tháng 2 năm 2013 lúc 15:43Feb 7, 2013 at 15:43
Tôi sẽ khuyên bạn nên sử dụng DicTreader từ mô -đun CSV. Bạn có thể vượt qua một đối số phân định, trong trường hợp này. Dòng đầu tiên sẽ được sử dụng làm chìa khóa cho dict. Xem: //docs.python.org/2/l Library/csv.html
See: //docs.python.org/2/library/csv.html
Example:
import csv
data = []
with open['example.csv', 'r'] as f:
reader = csv.DictReader[f, delimiter=',']
for line in reader:
line['Price'] = float[line['Price']]
data.append[line]
Bây giờ chỉ cần chuyển DataObject, hoặc đặt nó vào một chức năng bạn gọi bất cứ khi nào bạn cần.
Đã trả lời ngày 7 tháng 2 năm 2013 lúc 16:02Feb 7, 2013 at 16:02
BenjaminbenjaminBenjamin
6093 Huy hiệu bạc8 Huy hiệu Đồng3 silver badges8 bronze badges
# Create holder for all the data, just a simple list will do the job.
data = []
# Here you do all the things you do, open the file, bla-bla...
tree_file.readline[] # skip first row
for row in tree_file:
fields = row.strip[].split[","] #make Into fields
data.append[{
'length' : float[fields[0]],
'price' : float[fields[1]],
'code' : fields[2]
}]
# ...close the open file object and then just use the data list...
Đã trả lời ngày 7 tháng 2 năm 2013 lúc 15:49Feb 7, 2013 at 15:49
Jordan Jambazovjordan JambazovJordan Jambazov
3.3001 Huy hiệu vàng18 Huy hiệu bạc39 Huy hiệu đồng1 gold badge18 silver badges39 bronze badges
Blog
Sử dụng Python để viết câu lệnh CREATE TABLE và tải CSV vào Redshift
Bởi Đội Sisense
Xem Sisense trong hành động
Đăng ký dùng thử miễn phí để xây dựng trải nghiệm trực quan, tương tác.
Email công việc *
Họ và tên *
Công ty *
Số điện thoại *
Bằng cách kiểm tra hộp này, tôi đồng ý rằng chi tiết liên lạc của tôi có thể được sử dụng bởi Sisense và các chi nhánh của nó để gửi cho tôi tin tức về các sản phẩm và dịch vụ của Sisense và các thông tin tiếp thị khác.
Bằng cách nhấp vào nút Gửi bên dưới, tôi xác nhận rằng tôi đã đọc và hiểu chính sách bảo mật và điều khoản dịch vụ của Sisense.
Nhận mới nhất trong phân tích ngay trong hộp thư đến của bạn.
Email công việc *
Họ và tên *
Công ty *
Số điện thoại *
Bằng cách kiểm tra hộp này, tôi đồng ý rằng chi tiết liên lạc của tôi có thể được sử dụng bởi Sisense và các chi nhánh của nó để gửi cho tôi tin tức về các sản phẩm và dịch vụ của Sisense và các thông tin tiếp thị khác.
Bằng cách nhấp vào nút Gửi bên dưới, tôi xác nhận rằng tôi đã đọc và hiểu chính sách bảo mật và điều khoản dịch vụ của Sisense.
Bạn đã thực hiện một công việc tuyệt vời cho đến nay khi chèn dữ liệu vào bảng! Bây giờ bạn sẽ học cách tải nội dung của tệp CSV vào bảng.
Một cách để làm điều đó là đọc từng dòng tệp CSV, tạo một từ điển từ mỗi dòng, sau đó sử dụng insert[]
, giống như bạn đã làm trong bài tập trước.
Nhưng có một cách nhanh hơn khi sử dụng pandas
. Bạn có thể đọc tệp CSV vào DataFrame bằng hàm read_csv[]
[chức năng này phải quen thuộc với bạn, nhưng bạn có thể chạy help[pd.read_csv]
trong bảng điều khiển để làm mới bộ nhớ của bạn!]. Sau đó, bạn có thể gọi phương thức .to_sql[]
trên DataFrame để tải nó vào bảng SQL trong cơ sở dữ liệu. Các cột của DataFrame phải khớp với các cột của bảng SQL.
.to_sql[]
có nhiều tham số, nhưng trong bài tập này, chúng tôi sẽ sử dụng những điều sau đây:
0 là tên của bảng SQL [dưới dạng chuỗi].tree_file.readline[] # skip first row for row in tree_file: field=row.strip[] field=field.split[","] #make Into fields price=int[field[1]]
1 là kết nối với cơ sở dữ liệu mà bạn sẽ sử dụng để tải lên dữ liệu.tree_file.readline[] # skip first row for row in tree_file: field=row.strip[] field=field.split[","] #make Into fields price=int[field[1]]
2 Chỉ định cách cư xử nếu bảng đã tồn tại trong cơ sở dữ liệu; Các giá trị có thể làtree_file.readline[] # skip first row for row in tree_file: field=row.strip[] field=field.split[","] #make Into fields price=int[field[1]]
3,tree_file.readline[] # skip first row for row in tree_file: field=row.strip[] field=field.split[","] #make Into fields price=int[field[1]]
4 vàtree_file.readline[] # skip first row for row in tree_file: field=row.strip[] field=field.split[","] #make Into fields price=int[field[1]]
5.tree_file.readline[] # skip first row for row in tree_file: field=row.strip[] field=field.split[","] #make Into fields price=int[field[1]]
6 [tree_file.readline[] # skip first row for row in tree_file: field=row.strip[] field=field.split[","] #make Into fields price=int[field[1]]
7 hoặctree_file.readline[] # skip first row for row in tree_file: field=row.strip[] field=field.split[","] #make Into fields price=int[field[1]]
8] Chỉ định liệu có nên viết chỉ mục của DataFrame dưới dạng cột hay không.tree_file.readline[] # skip first row for row in tree_file: field=row.strip[] field=field.split[","] #make Into fields price=int[field[1]]
Trong bài tập này, bạn sẽ tải dữ liệu có trong tệp
tree_file.readline[] # skip first row
for row in tree_file:
field=row.strip[]
field=field.split[","] #make Into fields
price=int[field[1]]
9 vào bảng import csv
data = []
with open['example.csv', 'r'] as f:
reader = csv.DictReader[f, delimiter=',']
for line in reader:
line['Price'] = float[line['Price']]
data.append[line]
0 hiện có. import csv
data = []
with open['example.csv', 'r'] as f:
reader = csv.DictReader[f, delimiter=',']
for line in reader:
line['Price'] = float[line['Price']]
data.append[line]
1 vào cơ sở dữ liệu đã được tạo cho bạn.