吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1181|回复: 5
收起左侧

[求助] python pandas追加数据的问题

[复制链接]
cqwcns 发表于 2022-3-9 11:58
我写了一个代码,功能是汇总excel表。
所以首先我按照需要的字段,创建了一个空的DataFrame。


然后循环追加表。
代码如下:
[Python] 纯文本查看 复制代码
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([df, pd.DataFrame(df_temp)], ignore_index=False)


但报错如下:
Traceback (most recent call last):
  File "d:\OneDrive\code\python\yonghoujiping\play.py", line 19, in <module>
    df = pd.concat([df, pd.DataFrame(df_temp)], 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[ax] = 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

不知道是什么原因,请大佬指教,谢谢。


微信图片_20220309115747.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

d8349565 发表于 2022-3-9 12:15
第19行read excel参数里面选择headers=0删除usecol试试看
问题点报错内容翻译:重新索引仅对唯一值的索引对象有效
ligfoo 发表于 2022-3-9 14:38
pd.read_excel函数返回结果已经是DataFrame了,在concat的时候,不用再强转了吧,报错信息是重新索引的时候发送了重复值,需要改ignore_index=True

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
cqwcns + 1 + 1 谢谢@Thanks!

查看全部评分

heartblade 发表于 2022-3-9 15:36
rsnodame 发表于 2022-3-9 15:57
感觉可以不用concat,先用 append方法合并试试
append方法也比较适合放循环里,concat一次性把列表里的df合并更效率

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
cqwcns + 1 + 1 用心讨论,共获提升!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 15:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表