解决pandas的concat函数导致索引失效的方法

这篇具有很好参考价值的文章主要介绍了解决pandas的concat函数导致索引失效的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

concat

最近在写数据的时候看到用一个concat函数进行整合,但是下面这段代码之后就碰上个很奇怪的地方

for i, bag in enumerate(bags):

  coure_result = func()
  core_df = pd.DataFrame([core_result])

  dfs.append(core_df)
df = pd.concat(dfs)

这段代码首先就是用dfs记录了每一组数据,最后使用concat函数进行连接。在这之后我希望在特定位置插入一列数据

df_summary = pd.DataFrame(summary, columns = ["summary"])
df.insert(1,"summary",df_summary["summary"])

解决pandas的concat函数导致索引失效的方法

一共有三种类型的文本,10条数据,在df格式下前面也有索引。而我之前拼接好的内容如下图:

解决pandas的concat函数导致索引失效的方法

按理来说运行insert之后,每一行都会对应一个summary里面的字段,但是最终的运行效果summary里面的内容完全变成同样的话

解决pandas的concat函数导致索引失效的方法

这让我很是奇怪。研究了半天,发现df原来的内容默认索引全都是0,原因是因为在创建和合并DataFrame的时候,concat连接每一个dfs里面的独立的dataframe时,每个DataFrame都有自己独立的索引,从0开始。在运行concat函数时会保留原始的索引,即使在最终的DataFrame里面重复了。因此,再重新插入新的有index的df时,会根据索引位置插入数据,而并不是像Excel那样直接插入。

所以需要先改掉原先的索引才能插入

df = pd.concat(dfs).reset_index(drop = True)

意味着重置索引后丢弃掉原来的索引,如果不把drop改成True,那么原来的索引将会变成新的列。

解决pandas的concat函数导致索引失效的方法

这样的话,df的内容和我要插入内容的索引就可以对应上了,在进行插入的时候就可以了

解决pandas的concat函数导致索引失效的方法文章来源地址https://www.toymoban.com/news/detail-508504.html

到了这里,关于解决pandas的concat函数导致索引失效的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于使用BETWEEN AND 使索引失效的解决方法

    由于业务需要,需要使用between and 查询数据, 在查询数据条数约占总条数五分之一以下时能够使用到索引,但超过五分之一时,则使用全表扫描了。速度极慢。 解决办法(联合索引+强制使用索引)

    2024年02月14日
    浏览(28)
  • Elasticsearch Mapping字段未支持索引导致搜索失效

    生产上Es根据一个时间字段搜索,却没有返回数据 根据命令: GET indexName/_mapping 查看 count_name设置了 “index”: false 导致根据该字段搜索导致索引不生效。 ES的mappings 定义好了生成索引后是不支持修改现有的字段的,只能新增属性。 使用 reindex 命令处理 1、运行命令: GET ind

    2024年02月11日
    浏览(26)
  • MySQL中IN的取值范围较大时会导致索引失效

    结论:IN肯定会走索引,但是当IN的取值范围较大时会导致 索引失效,走全表扫描 navicat可视化工具使用explain函数查看sql执行信息 1.1 场景1:当IN中的取值只有一个主键时 我们只需要注意一个最重要的type 的信息很明显的提现是否用到索引: type结果值从好到坏依次是: syste

    2024年02月15日
    浏览(25)
  • Elasticsearch磁盘占用大于95% 导致索引自动置为只读的解决方法

    应用系统在更新或者插入elasticsearch的时候报错 看错误信息大意是要操作的索引是只读的,不能进行插入或删除。 原因是当Elasticsearch所在磁盘占用大于等于95%时,Elasticsearch会把所有相关索引自动置为只读。(Elasticsearch官方文档有介绍) 解决方案有两种: 1.清理磁盘,使占用

    2024年02月06日
    浏览(36)
  • Qt QTreeWidge解决setItemWidget后,导致复选框失效

    一、问题: QTreeWidget某一项加上itemWidget后,导致复选框失效问题 二、解决方法 将要加上的widget控件加到该项的后续的列,即控件跟复选框不同一列 三、具体代码 四、效果 对你有用就点个赞👍,以后需要用到就收藏⭐

    2024年02月09日
    浏览(31)
  • 【Pandas 入门-2】增加,删除与合并数据 concat, merge

    1.3.1 增加数据 在原数据末尾增加一列时,语法为 df[‘新列名\\\'] = 某个值或某个元素个数与 DataFrame 列数相同的列表 ,例如: 姓名 统计学 高数 英语 计算机 0 张三 95 82 84 92 1 赵四 100 90 89 69 2 王五 88 88 78 75 在原数据末尾增加一行数据时,比较简单的方式是用 loc 函数, df.loc[行

    2024年02月13日
    浏览(26)
  • JPA连接达梦数据库导致auto-ddl失效问题解决

      现象:         项目使用了JPA,并且auto-ddl设置的为update,在连接达梦数据库的时候,第一次启动没有问题,但是后面重启就会报错,发现错误为重复建表,也就是说已经建好的表没有检测到,又重新走的建表流程。经过一天的排查,总结了2个解决方案。  问题的根源:

    2024年02月15日
    浏览(33)
  • 【100天精通Python】Day59:Python 数据分析_Pandas高级功能-多层索引创建访问切片和重塑操作,pandas自定义函数和映射功能

    目录 1 多层索引(MultiIndex) 1.1 创建多层索引 1.1.1 从元组创建多层索引

    2024年02月09日
    浏览(53)
  • 一个mysql的group_concat导致的问题

    好久都没有写点东西了,是时候有点写东西的必要了。 去年下年底离职了,躺了几个月,最近又兜兜转转换了一家公司继续当牛马了,前段时间八股文背了好多,难受呀,不过我也趁着前段时间自己也整理了属于我自己的八股文,有好几万字吧,哈哈哈,以后就不用到处去找

    2024年02月06日
    浏览(30)
  • Hive中的常用concat函数——concat函数、concat_ws函数和group_concat函数

    连接参数的函数,返回结果为连接参数的字符串。如果有一个参数为 NULL ,则返回的结果为 NULL 。 concat() 的一个特殊形式,表示 concat with separator ,两个参数之间加上特定的分隔符。返回的是用指定分隔符连接参数的字符串。如果分割符为 null ,则返回 null ,参数为 null ,则

    2024年02月02日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包