1. DataFrame认知DataFrame 是 Pandas 中的另一个核心数据结构类似于一个二维的表格或数据库中的数据表。DataFrame 是一个表格型的数据结构它含有一组有序的列每列可以是不同的值类型数值、字符串、布尔型值。DataFrame 既有行索引也有列索引它可以被看做由 Series 组成的字典共同用一个索引。DataFrame 提供了各种功能来进行数据访问、筛选、分割、合并、重塑、聚合以及转换等操作。DataFrame 是一个非常灵活且强大的数据结构广泛用于数据分析、清洗、转换、可视化等任务。资料 https://www.runoob.com/2. DataFrame的创建创建语法pandas.DataFrame(dataNone,indexNone,columnsNone,dtypeNone,copyNone)二维的、大小可变的可以增删行、增删列、可存储不同类型数据的表格型数据。该数据结构包含带标签的轴行标签和列标签算术运算会根据行标签和列标签自动对齐。是 pandas 中最主要核心的数据结构。参数含义data支持的数据类型字典、数组、可迭代对象、dataframe、Seriesindex默认是012…n-1columns默认为012…n-1若数据data中包含列标签则保留columns指定的列。即当数据data中没有列名使用指定的列名当数据data中包含列名只保留columns中指定的列dtype默认为None 强制指定的数据类型。只允许传入一种数据类型。如果为 None则自动推断。copy布尔值默认为None。控制新表格和原数据是不是同一份数据。字典创建DataFrame默认 复制安全DataFrame / 二维数组创建默认 不复制省内存字典里有 Series用 copyFalse 能完全不复制共用数据# 1.通过字典创建dataframeprint(**********df1***********)dct1{name:(lisa,jane,liming),age:[19,20,21]}df1pd.DataFrame(dct1)print(df1)# 2.通过包含Series的字典创建dataframe# 2.1 Series中不指定indexprint(**********df2***********)dct2{course:[math,history,physics,chemisty],score:pd.Series([99,88,77,66])}df2pd.DataFrame(dct2)print(df2)# 2.2 Series中指定indexprint(**********df3***********)dct3{city:[北京,广州,上海,苏州],course:[math,history,physics,chemisty],score:pd.Series([99,88,77,66],index[张三,李四,王五,孙六])}df3pd.DataFrame(dct3)print(df3)# 2.3 多个Series中指定index,但其中还有普通列表只有4个元素无法与合并后的6个索引匹配报错# ValueError: array length 4 does not match index length 6# dct4 {city:[北京,广州,上海,苏州],# course:pd.Series([math,history,physics,chemisty],# index[赵二,张三,钱七,王五]),# score:pd.Series([99,88,77,66],index[张三,李四,王五,孙六])}## df4 pd.DataFrame(dct4)# print(df4)print(**********df4***********)# 2.3 多个Series中指定index,自动按索引对齐dct4{city:pd.Series([北京,广州,上海,苏州],index[周九,赵二,张三,钱七]),course:pd.Series([math,history,physics,chemisty],index[赵二,张三,钱七,王五]),score:pd.Series([99,88,77,66],index[张三,李四,王五,孙六])}df4pd.DataFrame(dct4)print(df4)print(**********df5***********)# 3. 通过array()数组创建dataframear1np.array(np.random.randint(0,100,size(4,3)))df5pd.DataFrame(ar1,columns[aa,bb,cc])print(df5)print(**********df6***********)# 通过dataframe创建df6pd.DataFrame(df5,columns[aa,cc])print(df6)创建总结普通字典列表 / 元组为值构建字典键作为 DataFrame 列名字典内列表、元组数据按位置组成各列所有容器元素长度必须保持一致生成后默认生成从 0 开始的数字行索引数据按顺序一一对应填充。字典混用无索引 Series 与普通列表构建未自定义索引的 Series 和普通列表规则一致依靠下标位置匹配数据要求所有数据长度相同一旦字典内出现带自定义索引的 Series就会整合全部索引扩充行数量搭配固定长度无索引列表时行列长度不一致直接触发报错。全自定义索引 Series 组成字典构建字典所有值全部为带独立索引的 Series 时DataFrame 会汇总全部行索引并自动对齐数据索引匹配成功填入原值无匹配项填充缺失值 NaN不受各 Series 索引顺序、元素数量差异影响不会报长度错误。数组、已有 DataFrame 数据源构建使用二维 numpy 数组创建时数组每行对应表格一行可通过 columns 参数自定义列名默认数字行索引依托现有 DataFrame 新建表格时借助 columns 参数可筛选指定列填写原表不存在的列名会生成全 NaN 新列。3. DataFrame常用属性属性含义dtypes返回 DataFrame的数据类型index返回DataFrame的行标签columns返回DataFrame的列标签values返回DataFrame的数据值shape返回DataFrame的形状m*nndim返回DataFrame的维度size返回DataFrame的数据个数m*nloc通过行标签、列标签获取DataFrame数据iloc基于纯整数位置的索引用于按位置选取数据。不管行标签、列标签叫什么只看 “第几个”