Tôi đã xem qua cộng đồng và tôi không thể tìm ra giải pháp cho vấn đề của mình khi cố gắng nhập các tệp excel từ SFTP bằng công thức python.
Tôi đang sử dụng đoạn mã sau
import dataiku
import pandas as pd
import numpy as np
from dataiku import pandasutils as pdu
FOLDER_NAME = 'folder_1'
FILE_NAME = 'file_1.xlsx'
DATASET_NAME = 'dataset_1'
folder = dataiku.Folder[FOLDER_NAME]
with folder.get_download_stream[FILE_NAME] as f:
df = pd.read_excel[f]
Sau khi chạy ở trên, tôi gặp lỗi sau
UnsupportedOperation: seek
đối tượng giống như tệp, pandas ExcelFile hoặc sổ làm việc xlrd. Chuỗi có thể là một URL. Lược đồ URL hợp lệ bao gồm http, ftp, s3 và tệp. Đối với các URL của tệp, một máy chủ lưu trữ được yêu cầu. Chẳng hạn, một tệp cục bộ có thể là tệp. // localhost/đường dẫn/đến/sổ làm việc. xlsx
sheet_name. chuỗi, int, danh sách hỗn hợp các chuỗi/int hoặc Không, mặc định 0
Các chuỗi được sử dụng cho tên trang tính, Số nguyên được sử dụng ở các vị trí trang tính không được lập chỉ mục
Danh sách các chuỗi/số nguyên được sử dụng để yêu cầu nhiều trang tính
Chỉ định Không có để nhận tất cả các trang tính
str. int -> DataFrame được trả về. danh sách. Không -> Dict of DataFrames được trả về, với các khóa đại diện cho các trang tính
Trường hợp có sẵn
- Mặc định là 0 -> Trang đầu tiên dưới dạng DataFrame
- 1 -> Trang thứ 2 dưới dạng DataFrame
- “Sheet1” -> Sheet đầu tiên dưới dạng DataFrame
- [0,1,”Sheet5”] -> Trang thứ 1, 2 & 5 dưới dạng từ điển của DataFrames
- Không có -> Tất cả các trang tính dưới dạng từ điển của DataFrames
tên trang tính. chuỗi, int, danh sách hỗn hợp các chuỗi/int hoặc Không, mặc định 0
Không dùng nữa kể từ phiên bản 0. 21. 0. Sử dụng sheet_name thay thế
tiêu đề. int, danh sách int, mặc định 0
Hàng [được lập chỉ mục 0] để sử dụng cho các nhãn cột của Khung dữ liệu được phân tích cú pháp. Nếu một danh sách các số nguyên được thông qua, các vị trí hàng đó sẽ được kết hợp thành một
>>> pd.read_excel['tmp.xlsx'] Name Value 0 string1 1 1 string2 2 2 string3 30. Sử dụng Không có nếu không có tiêu đề
tên. giống như mảng, mặc định Không có
Danh sách các tên cột để sử dụng. Nếu tệp không chứa hàng tiêu đề, thì bạn nên chuyển rõ ràng header=None
chỉ mục_col. int, danh sách int, mặc định Không có
Cột [được lập chỉ mục 0] để sử dụng làm nhãn hàng của DataFrame. Vượt qua Không nếu không có cột như vậy. Nếu một danh sách được thông qua, các cột đó sẽ được kết hợp thành một
>>> pd.read_excel['tmp.xlsx'] Name Value 0 string1 1 1 string2 2 2 string3 30. Nếu một tập hợp con dữ liệu được chọn với>>> pd.read_excel['tmp.xlsx'] Name Value 0 string1 1 1 string2 2 2 string3 32, thì index_col dựa trên tập hợp con đó
parse_cols. int hoặc danh sách, mặc định Không có
Không dùng nữa kể từ phiên bản 0. 21. 0. Thay vào đó hãy chuyển vào usecols.
sử dụng. int hoặc danh sách, mặc định Không có
- Nếu Không thì hãy phân tích tất cả các cột,
- Nếu int thì chỉ ra cột cuối cùng được phân tích cú pháp
- Nếu danh sách số nguyên thì chỉ ra danh sách số cột sẽ được phân tích cú pháp
- Nếu chuỗi thì biểu thị danh sách các chữ cái cột Excel và phạm vi cột được phân tách bằng dấu phẩy [e. g. "MỘT. E” hoặc “A,C,E. f”]. Phạm vi bao gồm cả hai bên
vắt kiệt. boolean, mặc định Sai
Nếu dữ liệu được phân tích cú pháp chỉ chứa một cột thì trả về Sê-ri
gõ. Nhập tên hoặc chính tả của cột -> loại, mặc định Không có
Kiểu dữ liệu cho dữ liệu hoặc cột. e. g. {'một'. np. float64, 'b'. np. int32} Sử dụng đối tượng để bảo toàn dữ liệu như được lưu trữ trong Excel và không diễn giải dtype. Nếu bộ chuyển đổi được chỉ định, chúng sẽ được áp dụng THAY THẾ cho chuyển đổi dtype
Mới trong phiên bản 0. 20. 0
động cơ. chuỗi, mặc định Không có
Nếu io không phải là bộ đệm hoặc đường dẫn, điều này phải được đặt để xác định io. Các giá trị được chấp nhận là Không có hoặc xlrd
bộ chuyển đổi. dict, mặc định Không có
Dict của các chức năng để chuyển đổi các giá trị trong các cột nhất định. Các khóa có thể là số nguyên hoặc nhãn cột, giá trị là các hàm nhận một đối số đầu vào, nội dung ô Excel và trả về nội dung đã chuyển đổi
true_values. danh sách, mặc định Không có
Các giá trị được coi là True
Mới trong phiên bản 0. 19. 0
false_values. danh sách, mặc định Không có
Các giá trị được coi là Sai
Mới trong phiên bản 0. 19. 0
mũi dùi. giống như danh sách
Các hàng cần bỏ qua ở đầu [được lập chỉ mục 0]
cau mày. int, mặc định Không có
Số hàng để phân tích cú pháp
Mới trong phiên bản 0. 23. 0
na_values. vô hướng, str, giống như danh sách hoặc dict, mặc định Không có
Các chuỗi bổ sung để nhận dạng là NA/NaN. Nếu dict được thông qua, các giá trị NA cụ thể trên mỗi cột. Theo mặc định, các giá trị sau được hiểu là NaN. ‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1. #IND', '-1. #QNAN’, ‘-NaN’, ‘-nan’, ‘1. #IND', '1. #QNAN’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘n/a’, ‘nan’, ‘null’
keep_default_na. bool, mặc định Đúng
Nếu na_values được chỉ định và keep_default_na là Sai, các giá trị NaN mặc định sẽ bị ghi đè, nếu không, chúng sẽ được thêm vào
dài dòng. boolean, mặc định Sai
Cho biết số lượng giá trị NA được đặt trong các cột không phải là số
hàng ngàn. str, mặc định Không có
Dấu phân cách hàng nghìn để phân tích các cột chuỗi thành số. Lưu ý rằng tham số này chỉ cần thiết cho các cột được lưu dưới dạng TEXT trong Excel, mọi cột số sẽ tự động được phân tích cú pháp, bất kể định dạng hiển thị
bình luận. str, mặc định Không có
Nhận xét phần còn lại của dòng. Truyền một hoặc nhiều ký tự cho đối số này để biểu thị nhận xét trong tệp đầu vào. Bất kỳ dữ liệu nào giữa chuỗi nhận xét và cuối dòng hiện tại đều bị bỏ qua
bỏ qua_footer. int, mặc định 0
Không dùng nữa kể từ phiên bản 0. 23. 0. Thay vào đó hãy chuyển vào skifooter.
người bỏ qua. int, mặc định 0
Hàng ở cuối để bỏ qua [0-lập chỉ mục]
convert_float. boolean, mặc định Đúng
trả lạichuyển đổi số float tích phân thành int [i. e. , 1. 0 -> 1]. Nếu Sai, tất cả dữ liệu số sẽ được đọc dưới dạng số float. Excel lưu trữ tất cả các số dưới dạng số float trong nội bộ
phân tích cú pháp. DataFrame hoặc Dict của DataFrames
DataFrame từ tệp được truyền trong tệp Excel. Xem ghi chú trong đối số sheet_name để biết thêm thông tin về thời điểm trả về Dict of Dataframes
ví dụ
Một ví dụ DataFrame được ghi vào một tệp cục bộ
>>> df_out = pd.DataFrame[[['string1', 1], .. ['string2', 2], .. ['string3', 3]], .. columns=['Name', 'Value']] >>> df_out Name Value 0 string1 1 1 string2 2 2 string3 3 >>> df_out.to_excel['tmp.xlsx']
Có thể đọc tệp bằng cách sử dụng tên tệp dưới dạng chuỗi hoặc đối tượng tệp đang mở
>>> pd.read_excel['tmp.xlsx'] Name Value 0 string1 1 1 string2 2 2 string3 3
>>> pd.read_excel[open['tmp.xlsx','rb']] Name Value 0 string1 1 1 string2 2 2 string3 3
Chỉ mục và tiêu đề có thể được chỉ định thông qua các đối số index_col và tiêu đề
________số 8
Các loại cột được suy ra nhưng có thể được chỉ định rõ ràng
>>> pd.read_excel['tmp.xlsx', dtype={'Name':str, 'Value':float}] Name Value 0 string1 1.0 1 string2 2.0 2 string3 3.0
Các giá trị Đúng, Sai và NA và dấu phân cách hàng nghìn có giá trị mặc định nhưng cũng có thể được chỉ định rõ ràng. Cung cấp các giá trị bạn muốn dưới dạng chuỗi hoặc danh sách chuỗi