我試圖找到以下給定問題的解決方案,但似乎我的方法出錯了我有一組 Excel,其中包含一些列,如 ISBN、Title 等。 Excel 中的列名稱格式不正確。ISBN 在某些 Excel 文件中被命名為 ISBN,而在其他文件中它被命名為 ISBN-13、Alias、ISBN13 等。標題和其他列也是如此。我已經使用 read Excel 在 python 中將所有這些 Excel 讀取為數據框,并用于str.contains根據子字符串查找列。請在下面找到代碼:searchfor = ['ISBN13','BAR CODE','ISBN NO#','ISBN','ISBN1','ISBN 13','ISBN_13','ITEM','ISBN NUMBER','ISBN No','ISBN-13','ISBN (13 DIGITS)','EAN','ALIAS','ITEMCODE']searchfor1 = ['TITLE','BOOK NAME','NAME','TITLE NAME','TITLES','BOOKNAME','BKDESC','PRODUCT NAME','ITEM DESCRIPTION','TITLE 18','COMPLETETITLE']for f, i in zip(files_txt1, num1): df = pd.read_excel(f,encoding='sys.getfilesystemencoding()') df.columns = df.columns.str.upper() df1['Isbn'] = df[df.columns[df.columns.str.contains('|'.join(searchfor))]]df1['Title']= df[df.columns[df.columns.to_series().str.contains('|'.join(searchfor1))]]如果我的 excel 列表中存在文本,則代碼工作正常。但是,如果 excel 沒有任何名稱類似于列表的列,則會引發錯誤。代碼也不適用于 ISBN。請參閱下面的詳細錯誤:--------------------------------------------------------------------------- ValueError Traceback (most recent call last) C:\Users\Ruchir_Kumar_Jha\AppData\Local\Enthought\Canopy\edm\envs\User\lib\site-packages\pandas\core\common.py in _asarray_tuplesafe(values, dtype) 376 result = np.empty(len(values), dtype=object)--> 377 result[:] = values 378 except ValueError:ValueError: could not broadcast input array from shape (31807,0) into shape (31807)During handling of the above exception, another exception occurred:
添加回答
舉報
0/150
提交
取消