首页 > 其他分享 ># 生成指定列名行索引的空表格 # 修改字典内不同表格的值

# 生成指定列名行索引的空表格 # 修改字典内不同表格的值

时间:2024-01-26 13:32:06浏览次数:25  
标签:表格 df 创建 列名 DataFrame dic 键值 key1 字典

# 生成指定列名行索引的空表格
# 修改字典内不同表格的值

import pandas as pd

list1 = ['列1', '列2', '列3']  # 列名列表
list2 = ['行1', '行2', '行3']  # 行索引列表

df = pd.DataFrame(columns=list1, index=list2)

# 1
dic = {key: df for key in ["key1", "key2", "key3"]}
# 会联动修改所有的键值表格
dic["key1"].iloc[0] = range(3)

# 2
dic = {key: value for key, value in zip(["key1", "key2", "key3"], [df]*3)}
# 会联动修改所有的键值表格
dic["key1"].iloc[0] = range(3)

# 3
df1, df2, df3 = [pd.DataFrame(columns=list1, index=list2)] * 3
dic = {key: value for key, value in zip(["key1", "key2", "key3"], [df1, df2, df3])}
# 会联动修改所有的键值表格
dic["key1"].iloc[0] = range(3)

# 4
df1 = pd.DataFrame(columns=list1, index=list2)
df2 = pd.DataFrame(columns=list1, index=list2)
df3 = pd.DataFrame(columns=list1, index=list2)
dic = {key: value for key, value in zip(["key1", "key2", "key3"], [df1, df2, df3])}
dic["key1"].iloc[0] = range(3)
# 只修改指定键名的键值表格
print(dic)

# 总结 避免同指向

这段代码的主要目标是创建一个字典,其中的键值是Pandas DataFrame对象。这些DataFrame对象有相同的列名和行索引,但是它们的值可能会有所不同。

首先,你创建了一个空的DataFrame df,它有指定的列名(list1)和行索引(list2)。

然后,你尝试了四种不同的方法来创建字典:

  1. 方法一:你创建了一个字典dic,其中每个键的值都是同一个DataFrame df。当你修改其中一个键的值时(例如dic["key1"].iloc[0] = range(3)),所有的键值都会被修改,因为它们都指向同一个DataFrame对象。
  2. 方法二:你创建了一个新的字典dic,其中每个键的值都是df的副本。然而,由于你使用了列表乘法([df]*3),这些副本实际上都是指向同一个对象的引用。因此,当你修改其中一个键的值时,所有的键值都会被修改。
  3. 方法三:你创建了三个新的DataFrame对象(df1df2df3),它们都是通过列表乘法从df创建的。然后,你创建了一个新的字典dic,其中每个键的值都是这些新的DataFrame对象。然而,由于这些新的DataFrame对象都是通过列表乘法创建的,它们实际上都是指向同一个对象的引用。因此,当你修改其中一个键的值时,所有的键值都会被修改。
  4. 方法四:你分别创建了三个新的DataFrame对象(df1df2df3)。然后,你创建了一个新的字典dic,其中每个键的值都是这些新的DataFrame对象。由于这些新的DataFrame对象是独立创建的,它们不会指向同一个对象。因此,当你修改其中一个键的值时,其他的键值不会被修改。

总的来说,如果你想要在字典中存储多个独立的DataFrame对象,你应该避免使用列表乘法来创建这些对象,因为这会导致所有的对象都指向同一个引用。相反,你应该分别创建每个对象,以确保它们是独立的。希望这个解释对你有所帮助!

标签:表格,df,创建,列名,DataFrame,dic,键值,key1,字典
From: https://blog.51cto.com/u_16055028/9429271

相关文章

  • python中利用变量解压列表、元组、字符串、字典、文件对象、迭代器和生成器等序列
    一、如果知道序列中元素的个数,可以直接进行变量赋值。coords=(102,40)lon,lat=coordsprint(lon)print(lat)text="news"a,b,c,d=textprint(a)print(b)print(c)print(d)二、如果不知道序列中元素的个数,可以通过*变量名来代表多个元素的变量,无论序列是什......
  • elementUI表格滚动条样式修改,隐藏表格右边留白
    修改滚动条样式//设置滚动条的宽度.el-table__body-wrapper::-webkit-scrollbar{width:4px;}//设置滚动条的背景色和圆角.el-table__body-wrapper::-webkit-scrollbar-thumb{background-color:#535353;-webkit-box-shadow:inset005pxrgba(0,0,0,0.2......
  • Python处理Excel表格的终极指南
    案例学Python(进阶篇)源代码.zip 链接:https://pan.quark.cn/s/c00aefe52fdc案例学Python(基础篇)源代码.zip 链接:https://pan.quark.cn/s/15c0b553b6b8引言Excel表格在数据处理和日常办公中扮演着不可或缺的角色。本文将详细介绍如何使用Python中的openpyxl库来处理Excel文件,......
  • P1481魔族密码 题解(字典树)
    魔族密码题目背景风之子刚走进他的考场,就……花花:当当当当~~偶是魅力女皇——花花!!^^(华丽出场,礼炮,鲜花)风之子:我呕……(杀死人的眼神)快说题目!否则……-_-###题目描述花花:……咦好冷我们现在要解决的是魔族的密码问题(自我陶醉:搞不好魔族里面还会有人用密码给我和菜虫写情书咧,哦......
  • [转]记录原生table转excel表格并导出功能_前端知识库
    不需要引进其他前端插件,还可以保留原有样式,简单表导出非常合适.实测有效,只是貌似只能使用xls后缀名,而且打开时office会有警告,原理可以看后面的其他参考文章,应当是利用url,所以大小可能有2M的限制,所以不适合导出大文件.原文地址:记录原生table转excel表格并导出功能_前端......
  • MarkDown基础及表格、KaTeX公式、矩阵、流程图、UML图、甘特图语法
    概述最多可设置6级标题技巧列表有序列表MD语法:1.你好2.我也好呈现效果:你好我也好无序列表MD语法:-a-b*aa*bb+aaa+bbb效果:abaabbaaabbb结论,支持三种方式:-、*、+TODO列表MD语法:-[x]后端接口开发-[]与前端联调呈现效果:后端......
  • python----处理exl表格,将其转换成其他代码的方法
    用python获取表格数据的基本方法如下:值得注意的是,在后续学习中发现对单个数据做sheet得到的是单个cell类型数据,对多个做sheet处理得到的是多个cell组成的元组,要想把这些cell的值合并得先分别提取出cell的值再合并成新的list,不知道是否有更简单的方法。如何用利用得到的表格数据......
  • [element-ui] table表格点击单元格,单元格改变背景色
     <el-table:data="tableData"border@cell-click="cellclick":cell-style="tableCellStyle"></el-table>data(){row:'',column:''}cellclick(row,column,cell......
  • 无涯教程-CSS - 表格(Table)
    本教程将教您如何使用CSS设置HTMLTable的不同属性。border-collapse  : 设置是否把表格边框合并为单一的边框。border-spacing  : 设置分隔单元格边框的距离。caption-side     :  设置表格标题的位置。empty-cells      :  设置是......
  • 最新作品FreeScript,全功能免费,让Excel/WPS表格可运行主流编程语言及其生态轮子库
    经过几个月的开发,FreeScript终于走向成熟,可以向大众分享,同时视频教程也陆续推出,让大家上手不再是难事。下载地址:https://easyshu.lanzoub.com/b00xsdfvg密码:c0p8下载地址:https://space.bilibili.com/385286336/channel/collectiondetail?sid=2094380目前FreeScript已完成对J......