我试图找到以下给定问题的解决方案,但似乎我的方法出错了
我有一组 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:
相关分类