def loadfunc[filestr]:
listoftuples = []
listofnumbers = []
tupleinlist = []
with open[filestr, 'r'] as file:
for line in file:
for item in line:
if item.isdigit[]:
listofnumbers.append[float[item]]
else:
word = item
tupleinlist.append[word]
tupleinlist.append[listofnumbers]
listoftuples.append[tuple[tupleinlist]]
return listoftuples
print[listoftuples]
Trên đây là mã của tôi. Vì vậy, yêu cầu là tải dữ liệu từ tệp .csv và vào một danh sách các bộ dữ liệu. Dữ liệu trong tệp giống như:
- apple 23.2 24.3 25.6
- banana 22.1 20.0 19.9
Bên cạnh mỗi bộ trong danh sách, nó phải là [word, listoffloats]
để danh sách trông giống như:
[[apple, [23.2, 24.3, 25.6]], [banana, [22.1, 20.0, 219.9]]]
Nhưng với mã của tôi, nó làm hỏng việc này và không trả lại vì khi nó lặp lại "mục" trong mỗi dòng "dòng", nó lặp lại trên mỗi ký tự [như .
, a
, p
, p
, l
, e
] là những thứ như
- apple 23.2 24.3 25.6
- banana 22.1 20.0 19.9
0, - apple 23.2 24.3 25.6
- banana 22.1 20.0 19.9
1, v.v.Giúp tôi không biết cách khắc phục điều này và không được phép sử dụng thư viện/mô -đun CSV cho hướng dẫn này.
CSV [Giá trị phân tách bằng dấu phẩy] là một định dạng tệp đơn giản được sử dụng để lưu trữ dữ liệu bảng, chẳng hạn như bảng tính hoặc cơ sở dữ liệu. Tệp CSV lưu trữ dữ liệu bảng [số và văn bản] trong văn bản thuần túy. Mỗi dòng của tệp là một bản ghi dữ liệu. Mỗi hồ sơ bao gồm một hoặc nhiều trường, cách nhau bằng dấu phẩy. Việc sử dụng dấu phẩy làm dấu phân cách trường là nguồn của tên cho định dạng tệp này. Các tệp CSV có thể được đọc bằng thư viện Python có tên là Pandas. Thư viện này có thể được sử dụng để đọc một số loại tệp, bao gồm các tệp CSV. Chúng tôi sử dụng hàm thư viện read_csv [đầu vào] để đọc tệp CSV. URL/đường dẫn của tệp CSV mà bạn muốn đọc được đưa ra làm đầu vào cho hàm. Cú pháp:Syntax:
pd.read_csv [filepath_or_buffer, sep = ',', delimiter = none, header = 'inform động cơ = none, bộ chuyển đổi = none, true_values = none, false_values = none, skipinitialspace = false Sai ", Trích dẫn = 0, escapechar = none, bình luận = không , memory_map = false, float_precision = none]filepath_or_buffer, sep=’, ‘, delimiter=None, header=’infer’, names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression=’infer’, thousands=None, decimal=b’.’, lineterminator=None, quotechar='”‘, quoting=0, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, skipfooter=0, doublequote=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None]
Không phải tất cả chúng đều quan trọng nhưng nhớ những điều này thực sự tiết kiệm thời gian thực hiện cùng một chức năng. Người ta có thể thấy các tham số của bất kỳ chức năng nào bằng cách nhấn Tab Shift + trong Notebook Jupyter. Những cái hữu ích được đưa ra dưới đây với cách sử dụng của họ:
FILEPATH_OR_BUFFER | Vị trí URL hoặc Dir của tệp |
Tháng 9 | Là viết tắt của DECEATOR, mặc định là ‘, như trong CSV [giá trị phân tách bằng dấu phẩy] |
index_col | Làm cho cột được truyền làm chỉ mục thay vì 0, 1, 2, 3… r r |
tiêu đề | Làm cho hàng qua/s [danh sách int/int] làm tiêu đề |
use_cols | Chỉ sử dụng col [danh sách chuỗi] được truyền để tạo khung dữ liệu |
vắt kiệt | Nếu đúng và chỉ có một cột được thông qua, Returns Pandas Series |
bỏ qua | Bỏ qua các hàng vượt qua trong khung dữ liệu mới |
Nếu đường dẫn đã cho không hợp lệ, IE, tệp không có mặt tại đường dẫn đã cho thì hàm sẽ cho FileNotFounderRor. Nhưng nếu hàm đọc thành công tệp, thì nó sẽ trả về một đối tượng của loại pandas.core.frame.dataframe. DataFrame [đối tượng] được trả về sau đó có thể được chuyển đổi thành một mảng numpy bằng cách sử dụng hàm dataFrame.to_numpy [] Chức năng này đi kèm với gấu trúc và trả về biểu diễn mảng numpy của dataFrame. Sau đó, trở đi, chúng ta có thể sử dụng mảng như một mảng numpy để thực hiện các hoạt động mong muốn. Ví dụ: & nbsp;Example:
Python3
- apple 23.2 24.3 25.6
- banana 22.1 20.0 19.9
2 - apple 23.2 24.3 25.6
- banana 22.1 20.0 19.9
3 - apple 23.2 24.3 25.6
- banana 22.1 20.0 19.9
4 - apple 23.2 24.3 25.6
- banana 22.1 20.0 19.9
5 - apple 23.2 24.3 25.6
- banana 22.1 20.0 19.9
6 - apple 23.2 24.3 25.6
- banana 22.1 20.0 19.9
7 - apple 23.2 24.3 25.6
- banana 22.1 20.0 19.9
8 - apple 23.2 24.3 25.6
- banana 22.1 20.0 19.9
9[[apple, [23.2, 24.3, 25.6]], [banana, [22.1, 20.0, 219.9]]]
0 - apple 23.2 24.3 25.6
- banana 22.1 20.0 19.9
7[[apple, [23.2, 24.3, 25.6]], [banana, [22.1, 20.0, 219.9]]]
2[[apple, [23.2, 24.3, 25.6]], [banana, [22.1, 20.0, 219.9]]]
3 - apple 23.2 24.3 25.6
- banana 22.1 20.0 19.9
5 [[apple, [23.2, 24.3, 25.6]], [banana, [22.1, 20.0, 219.9]]]
5 - apple 23.2 24.3 25.6
- banana 22.1 20.0 19.9
7[[apple, [23.2, 24.3, 25.6]], [banana, [22.1, 20.0, 219.9]]]
7Output: