为了账号安全,请及时绑定邮箱和手机立即绑定

Python中的列选择

Python中的列选择

繁星coding 2021-09-24 15:36:30
我试图找到以下给定问题的解决方案,但似乎我的方法出错了我有一组 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:
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 397 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信