我使用的以下代码主要取自 DuckPuncher 对这篇文章Extracting text from a PDF file using PDFMiner in python? 将 pdf 转换为文本文件:
def convert_pdf_to_txt(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
fp = open(path, 'rb')
interpreter = PDFPageInterpreter(rsrcmgr, device)
password = ""
maxpages = 0
caching = True
pagenos=set()
for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
interpreter.process_page(page)
fp.close()
device.close()
str = retstr.getvalue()
retstr.close()
return str
Run Code Online (Sandbox Code Playgroud)
使用以下代码下载pdf并存储在我的本地目录中并存储在我的本地目录中。它工作得很好。
import requests
url = 'link_to_the_pdf'
file_name = './name.pdf' …Run Code Online (Sandbox Code Playgroud) 我正在使用Kaggle的Titanic数据集(https://www.kaggle.com/c/titanic/data),我想使用sklearn.preprocessing中的LabelEncoder转换Sex,最初标记为'male'或'female '进'0'或'1'.我有以下四行代码,
import pandas as pd
from sklearn.preprocessing import LabelEncoder
df = pd.read_csv('titanic.csv')
df['Sex'] = LabelEncoder.fit_transform(df['Sex'])
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,我收到以下错误消息:
TypeError: fit_transform() missing 1 required positional argument: 'y'
Run Code Online (Sandbox Code Playgroud)
错误来自第4行,即
df['Sex'] = LabelEncoder.fit_transform(df['Sex'])
Run Code Online (Sandbox Code Playgroud)
我想知道这里出了什么问题.虽然我知道我也可以使用map进行转换,这可能更简单,但我仍然想知道我对LabelEncoder的使用有什么问题.