python pandas追加数据的问题
我写了一个代码,功能是汇总excel表。所以首先我按照需要的字段,创建了一个空的DataFrame。
然后循环追加表。
代码如下:
import pandas as pd
import os
import datetime
os.system('cls')
print('hello world')
source_path = r'D:\pythonfiles\用后即评合并'
files = os.listdir(source_path)
df = pd.DataFrame(columns=['号码', 'CRM订单号', '星级', '装维工号',
'装维姓名', '评价时间', 'CRM订单时间', '评价时间', 'CRM订单时间', '业务类型'])
for file in files:
this_file = source_path + '\\' + file
print('正在读取:' + file)
df_temp = pd.read_excel(this_file, sheet_name='开通省评价清单', usecols=[
'号码', 'CRM订单号', '星级', '装维工号', '装维姓名', '评价时间', 'CRM订单时间', '评价时间', 'CRM订单时间', '业务类型'])
print(df_temp)
df = pd.concat(, ignore_index=False)
但报错如下:
Traceback (most recent call last):
File "d:\OneDrive\code\python\yonghoujiping\play.py", line 19, in <module>
df = pd.concat(, ignore_index=False)
File "C:\Users\candyissupersweet\AppData\Local\Programs\Python\Python310\lib\site-packages\pandas\util\_decorators.py", line 311, in wrapper
return func(*args, **kwargs)
File "C:\Users\candyissupersweet\AppData\Local\Programs\Python\Python310\lib\site-packages\pandas\core\reshape\concat.py", line 359, in concat
return op.get_result()
File "C:\Users\candyissupersweet\AppData\Local\Programs\Python\Python310\lib\site-packages\pandas\core\reshape\concat.py", line 588, in get_result
indexers = obj_labels.get_indexer(new_labels)
File "C:\Users\candyissupersweet\AppData\Local\Programs\Python\Python310\lib\site-packages\pandas\core\indexes\base.py", line 3721, in get_indexer
raise InvalidIndexError(self._requires_unique_msg)
pandas.errors.InvalidIndexError: Reindexing only valid with uniquely valued Index objects
不知道是什么原因,请大佬指教,谢谢。
第19行read excel参数里面选择headers=0删除usecol试试看
问题点报错内容翻译:重新索引仅对唯一值的索引对象有效 pd.read_excel函数返回结果已经是DataFrame了,在concat的时候,不用再强转了吧,报错信息是重新索引的时候发送了重复值,需要改ignore_index=True 手机号还是打码吧 感觉可以不用concat,先用 append方法合并试试
append方法也比较适合放循环里,concat一次性把列表里的df合并更效率
页:
[1]