這是……我正在處理的一個奇怪的情況。
所以我構建了一個函式來瀏覽pdf并收集資訊,這樣我就可以構建一個df并對其進行一些數學運算。
一切都很好。我得到了所有資訊并構建了 df,但問題是它的數學運算不正確。我將向您展示我制作的功能,但正如您想象的那樣,由于您沒有 pdf,它不會起作用。
def pdf_open(person):
role_list = []
role_index = [0, 3, 6, 9, 12, 15, 18, 21, 24]
self_list = []
self_index = [1, 4, 7, 10, 13, 16, 19, 22, 25]
obs_list = []
obs_index = [2, 5, 8, 11, 14, 17, 20, 23, 26]
with open(person, 'rb'):
pdfReader = PyPDF2.PdfFileReader(person)
pageObj = pdfReader.getPage(4)
report = pageObj.extractText()
report = report.replace('Resource Investigator','Resource-Investigator')
report = report.replace('Completer Finisher', 'Completer-Finisher')
report = report.replace('Monitor Evaluator','Monitor-Evaluator')
report_list = report.split('(Percentile) (Percentile)\n')
report_list = report_list[1][27:]
report_list = report_list.replace('\n', ' ')
report_list = report_list.split(' ')
role_list = [report_list[i] for i in role_index]
self_list = [report_list[i] for i in self_index]
obs_list = [report_list[i] for i in obs_index]
data = [role_list]
col_list = ['Role', 'Self-Perception Percentile', 'Observed Percentile']
df = pd.DataFrame(columns=col_list)
df['Role'] = role_list
df['Self-Perception Percentile'] = self_list
df['Observed Percentile'] = obs_list
df['Self-Perception Percentile'] = df['Self-Perception Percentile'].astype('int8')
df['Observed Percentile'] = df['Observed Percentile'].astype('int8')
df['Self-Perception Percentile'] = abs(df['Self-Perception Percentile'])
df['Observed Percentile'] = abs(df['Observed Percentile'].astype('int8'))
df['Weighted List'] = (df['Observed Percentile']*2)
print(df)
這是我的結果。

不需要數學家就知道將兩個正數相乘不等于負數,并且大多數行的數學是正確的,但是您可以看到問題。
我什至做了一些小事情,比如獲取絕對值以確保所有值都是正數。
有什么我不應該做的事情嗎?
uj5u.com熱心網友回復:
算術溢位。該值96*2不適合帶符號的 int8。您需要uint8或更大的簽名型別。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/511539.html
標籤:Python数学
