---- ---- 我们来看看数据: 注意看左上角有3个 nan ,是因为表格的标题行前3列是空的。 由于前2列有合并单元格,出现了很多 nan。 此外注意看第3列,把课时序号显示成小数。...---- 处理标题 pandas 的 DataFrame 最大的好处是,我们可以使用列名字操作数据,这样子就无需担心列的位置变化。因此需要把标题处理好。...如下是一个 DataFrame 的组成部分: 红框中的是 DataFrame 的值部分(values) 上方深蓝色框中是 DataFrame 的列索引(columns),注意,为什么方框不是一行?...是因为 DataFrame 允许多层次索引。类似于平时的复合表头。 左方深蓝色框中是 DataFrame 的行索引(index)。...下面来看看一个多层次索引的例子: 上图的上方有3个层次的列索引,依次从上到下。 上图的左方有2个层次的行索引,依次从左到右。
df.columns 提供列(标题)名称的列表。 df.shape 显示数据框架的维度,在本例中为4行5列。 图3 使用pandas获取列 有几种方法可以在pandas中获取列。...请注意双方括号: dataframe[[列名1,列名2,列名3,…]] 图6 使用pandas获取行 可以使用.loc[]获取行。请注意此处是方括号,而不是圆括号()。...获取1行 图7 获取多行 我们必须使用索引/切片来获取多行。在pandas中,这类似于如何索引/切片Python列表。...要获取前三行,可以执行以下操作: 图8 使用pandas获取单元格值 要获取单个单元格值,我们需要使用行和列的交集。...想想如何在Excel中引用单元格,例如单元格“C10”或单元格区域“C10:E20”。以下两种方法都遵循这种行和列的思想。 方括号表示法 使用方括号表示法,语法如下:df[列名][行索引]。
在 Pandas 中,如果未指定索引,则默认使用 RangeIndex(第一行 = 0,第二行 = 1,依此类推),类似于电子表格中的行标题/数字。...索引值也是持久的,所以如果你对 DataFrame 中的行重新排序,特定行的标签不会改变。 5. 副本与就地操作 大多数 Pandas 操作返回 Series/DataFrame 的副本。...列操作 在电子表格中,公式通常在单个单元格中创建,然后拖入其他单元格以计算其他列的公式。在 Pandas 中,您可以直接对整列进行操作。...获取第一个字符: =MID(A2,1,1) 使用 Pandas,您可以使用 [] 表示法按位置位置从字符串中提取子字符串。请记住,Python 索引是从零开始的。...这可以通过创建一个系列并将其分配给所需的单元格来实现。
读取Excel文件(read_excel) pandas的read_excel函数用于读取Excel文件(.xls或.xlsx),并将其内容加载到DataFrame对象中。...sheet_name: 指定要读取的工作表名称或索引。可以是字符串、整数、字符串列表或None。如果是None,则返回字典,其中包含所有工作表。 header: 指定作为列名的行,默认为0(第一行)。...如果文件没有列标题,可以设置为None。 names: 用于结果的列名的列表,如果文件不包含列标题行,应该明确指定此参数。...columns: 要写入的列名列表。 header: 是否写入列名作为Excel文件的第一行,默认为True。 index: 是否将行索引写入Excel文件,默认为True。...# 通过名称 ws = wb['Sheet1'] # 或者通过索引(索引从0开始) ws = wb.worksheets[0] # 也可以使用 active 属性获取当前活动的工作表
这种从单元格中提取值的方法在本质上与通过索引位置从NumPy数组和Pandas数据框架中选择和提取值非常相似。...这将在提取单元格值方面提供很大的灵活性,而无需太多硬编码。让我们打印出第2列中包含值的行的值。如果那些特定的单元格是空的,那么只是获取None。...注意,区域的选择与选择、获取和索引列表以及NumPy数组元素非常相似,其中还使用方括号和冒号:来指示要获取值的区域。此外,上面的循环还很好地使用了单元格属性。...可以使用Pandas包中的DataFrame()函数将工作表的值放入数据框架(DataFrame),然后使用所有数据框架函数分析和处理数据: 图18 如果要指定标题和索引,可以传递带有标题和索引列表为...,即标题(cols)和行(txt); 4.接下来,有一个for循环,它将迭代数据并将所有值填充到文件中:对于从0到4的每个元素,都要逐行填充值;指定一个row元素,该元素在每次循环增量时都会转到下一行;
这些不能用于列标题行或索引,也无法导出到 Excel。 使用.apply()和.map()函数向特定数据单元格添加直接内部 CSS。请参见这里。...操作索引和列标题 通过使用以下方式实现标题的类似应用: .map_index()(逐元素):接受一个接受单个值并返回具有 CSS 属性-值对的字符串的函数。...传递给subset的值类似于对 DataFrame 进行切片; 将标量视为列标签 将列表(或 Series 或 NumPy 数组)视为多列标签 元组被视为(行索引器,列索引器) 考虑使用...可扩展性 pandas 的核心是,并将始终是其“高性能、易于使用的数据结构”。...作用于索引和列标题 通过使用以下方式实现标题的类似应用: .map_index()(逐元素):接受一个接受单个值并返回带有 CSS 属性-值对的字符串的函数。
(在命令模式下) Esc + O:切换单元格输出(在命令模式下) 选择多个单元格: Shift + Down选择向下方向的下一个单元格。 Shift + Up选择向上方向的下一个单元格。...输出中的列数和行数 默认情况下,panda的dataframe只能显示有限数量的行和列。...有几种方法可以扩展Jupyter Notebook中pandas DataFrame中显示的行和列的数量。...我们在jupyter notebook中执行单元格时,它将分配一个行号为ln: 当单元格完成执行时,我们会得到一个输出并且可以通过传递执行编号作为索引来访问它 Out是一个python字典,存储单元格的所有输出...我们可以使用编号作为索引来访问输出。 15、导出单元格的内容 当完成jupyter的测试我们可能会想将jupyter单元中内容导出到python文件中。
你不能通过名称访问行,不能通过位置索引访问不相交的行,你甚至不能引用单个单元格,因为df[‘x’, ‘y’]是为多索引保留的!...7.1 垂直叠加 这可能是将两个或多个dataframe合并为一个的最简单方法:您获取第一个dataframe中的行,并将第二个dataframe中的行追加到底部。...7.4 连接查询 1、1:1 连接的关系 当同一组对象的信息存储在几个不同的DataFrame中时,你希望将它们合并为一个DataFrame。...默认情况下,Pandas会对所有远端可求和的东西进行求和,因此你需要缩小选择范围,如下所示: 注意,当对单个列求和时,你将得到一个Series而不是DataFrame。...当使用多索引时,透视表特别方便。
'text_wrap': True, # 是否自动换行 }) 写入单元格数据 # 写入单个单元格数据 # row:行, col:列, data:要写入的数据, bold...pandas是专门为处理表格和混杂数据设计的,而NumPy更适合处理统一的数值数组数据。 pandas有两个主要数据结构:Series和DataFrame。...中的单个或一组值。...DataFrame DataFrame是一个表格型的数据类型,每列值类型可以不同,是最常用的pandas对象。...DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。
rows = table.find_elements_by_tag_name('tr')# 创建一个空列表,用于存储数据data = []# 遍历每一行for row in rows: # 获取行中的所有单元格...cells = row.find_elements_by_tag_name('td') # 如果单元格数量大于0,则说明是数据行,而不是标题行或空行 if len(cells) >...判断行类型:对于每一行,通过find_elements_by_tag_name('td')方法找到行中的所有单元格,然后判断单元格数量是否大于0,以确定该行是否是数据行,而不是标题行或空行。...解析数据并存储:如果是数据行,代码创建一个空字典record,并将每个单元格的文本和对应的列名作为键值对存入字典。...将列表转换为DataFrame对象:使用pd.DataFrame(data)将data列表转换为一个pandas的DataFrame对象df,其中每个字典代表DataFrame的一行。
添加和删除单元格:如果我们需要添加新的单元格,可以点击菜单栏中的 “Insert” -> “Insert Cell Above”(在当前单元格上方插入)或 “Insert Cell Below”(在当前单元格下方插入...访问 Series 中的数据也很直观,我们可以通过索引来获取单个数据或多个数据: # 访问单个数据 print(s2['b']) # 访问多个数据 print(s2[['a', 'c']])...在第一行代码中,我们通过索引 'b' 获取了 s2 中对应的数据 200;第二行代码中,我们通过传递一个包含索引 'a' 和 'c' 的列表,获取了这两个索引对应的数据,输出结果是一个包含这两个数据的新...print(row_data) 在第一行代码中,我们通过列名 ' 年龄 ' 获取了 df 中的 ' 年龄 ' 列数据,返回的是一个 Series 对象;第二行代码中,我们使用 loc 索引器通过行索引...,获取了 df 中索引为 1、2、3 的行,以及 ' 姓名 ' 和' 城市 ' 两列的数据,返回的是一个新的 DataFrame 对象。
当Excel中有大量需要进行处理的数据时,使用Python不失为一种便捷易学的方法。...sheet = mySheets[0] # 通过索引顺序获取。...sheet = book.sheet_by_index(0) # 通过索引顺序获取。...cell1.value) # cell1.value获取单元格B7中的值 print(sheet['a2'].value) # 使用excel单元格的表示法,字母不区分大小写 获取第2行第1列的数据...) 其他 当收到的文件既有xls,又有xlsx时,先转换为统一格式再做统计修改更方便。
1. pandas介绍 Pandas是一个强大的数据分析库,它的Series和DataFrame数据结构,使得处理起二维表格数据变得非常简单。...这里我一共提供了5种需要掌握的数据获取方式,分别是 “访问一列或多列” ,“访问一行或多行” ,“访问单元格中某个值” ,“访问多行多列” 。...”的方式,就可以获取到一列或多列。...,"地区2","地区4"]] ④ 访问单元格中某个值 “访问单元格中某个值”,也有很多种方式,既可以使用“位置索引”,也可以使用“标签索引”。...在Pandas库中,将数据导出为xlsx格式,使用的是DataFrame对象的to_excle()方法,其中这里面有4个常用的参数,详情如下。
Pandas中,数据主要保存为Dataframe和Series是数据结构,这两种数据结构数据选取的方式基本一致,本文主要以Dataframe为例进行介绍。...Dataframe对象的每一列都有列名,可以通过列名实现对列的选取。 1)选取行 选取行的方式包括三种:整数索引切片、标签索引切片和布尔数组。...df.at[]和df.iat[]选取的都是单个单元格(单行单列),所以返回值都为基本数据类型。...4)选取数据时,返回值存在以下情况: 如果返回值包括单行多列或多行单列时,返回值为Series对象;如果返回值包括多行多列时,返回值为DataFrame对象;如果返回值仅为一个单元格(单行单列)时,返回值为基本数据类型...5)df[]的方式只能选取行和列数据,不能精确到单元格,所以df[]的返回值一定DataFrame或Series对象。 6)当使用DataFrame的默认索引(整数索引)时,整数索引即为标签索引。
你可以将数据组织为行和列,类似于 Excel 表格或者 pandas 的 DataFrame。在应用程序中,表格控件非常适合展示结构化数据,如数据库查询结果、文件数据等。...这里我们将创建一个 3 行 2 列的表格,并手动设置表头和每个单元格的数据。...接下来,我们演示如何使用 pandas 读取数据,并将其展示在 QTableWidget 中。...通过这个方法,我们可以轻松将 DataFrame 中的每个单元格数据填充到 QTableWidget 中。...data_frame.iat[row, col] 通过 iat 方法按行列索引获取 DataFrame 中的具体数据,并填充到 QTableWidget 的对应单元格中。
Excel DataFrame 工作表 Series 列 Index 行标题 行 行 NaN 空单元格 DataFrame 在 pandas 中,DataFrame类似于 Excel 工作表。...Excel DataFrame 工作表 Series 列 Index 行标题 行 行 NaN 空单元格 DataFrame 在 pandas 中,DataFrame 类似于 Excel 的工作表。...索引值也是持久的,因此如果重新排序DataFrame的行,则特定行的标签不会更改。 查看 索引文档以获取更多关于如何有效使用Index的信息。 副本 vs....一般术语翻译 pandas Excel DataFrame 工作表 Series 列 Index 行标题 行 行 NaN 空单元格 DataFrame 在 pandas 中,DataFrame 类似于...在 pandas 中,如果未指定索引,则默认使用RangeIndex(第一行= 0,第二行= 1,依此类推),类似于电子表格中的行标题/数字。
也就是说,你只需调用 .plot() 方法,即可快速绘制简单的 pd.DataFrame 或 pd.Series: ? 有点无聊?...魔术命令包括两种方法:行魔术命令(line magics):以 % 为前缀,在单个输入行上运行;单元格魔术命令(cell magics):以 %% 为前缀,在多个输入行上运行。...在命令模式内: A 和 B:在当前单元格上方(Above)或下方(Below)插入新的单元格。 M:当前单元格转入 Markdown 状态。 Y:当前单元格转入 code 状态。...选择多个单元格: Shift + Down 和 Shift + Up:选中下方或上方的单元格。 Shift + M:合并选中单元格。...在 Jupyter(或 IPython)中使一个单元同时有多个输出 ” 想展示 pandas DataFrame 的 .head() 和 .tail(),但由于创建运行 .tail() 方法的额外代码单元过于麻烦而不得不中途放弃
也就是说,你只需调用 .plot() 方法,即可快速绘制简单的 pd.DataFrame 或 pd.Series: ? 有点无聊?...魔术命令包括两种方法:行魔术命令(line magics):以 % 为前缀,在单个输入行上运行;单元格魔术命令(cell magics):以 %% 为前缀,在多个输入行上运行。...在命令模式内: A 和 B:在当前单元格上方(Above)或下方(Below)插入新的单元格。 M:当前单元格转入 Markdown 状态。 Y:当前单元格转入 code 状态。...选择多个单元格: Shift + Down 和 Shift + Up:选中下方或上方的单元格。 Shift + M:合并选中单元格。...在 Jupyter(或 IPython)中使一个单元同时有多个输出 想展示 pandas DataFrame 的 .head() 和 .tail(),但由于创建运行 .tail() 方法的额外代码单元过于麻烦而不得不中途放弃
而格式调整需要用到 openpyxl 库,我们将 Pandas 库中DataFrame 格式的数据转化为适用 openpyxl 库的数据格式,具体实现代码如下。...ws['A1'] = '指标' #插入一行作为标题行 ws.insert_rows(1) ws['A1'] = '电商业务方向 2021/4/11 日报' #将标题行的单元格进行合并 ws.merge_cells...那我们怎么知道要遍历哪些单元格呢?核心是需要知道遍历开始的行/列和遍历结束的行/列。...= df_province 表占据的列 又因为 DataFrame 中获取列名的方式和获取具体值的方式不太一样,所以我们需要分别插入,先插入列名,具体代码如下。...df_province 表有多少列,df_view.shape[0]表示获取 df_view 表有多少行。
也就是说,你只需调用 .plot() 方法,即可快速绘制简单的 pd.DataFrame 或 pd.Series: ? 有点无聊? 这已经很好了,不过是否可以绘制一个交互式、可缩放、可扩展的全景图呢?...魔术命令包括两种方法:行魔术命令(line magics):以 % 为前缀,在单个输入行上运行;单元格魔术命令(cell magics):以 %% 为前缀,在多个输入行上运行。...在命令模式内: A 和 B:在当前单元格上方(Above)或下方(Below)插入新的单元格。 M:当前单元格转入 Markdown 状态。 Y:当前单元格转入 code 状态。...选择多个单元格: Shift + Down 和 Shift + Up:选中下方或上方的单元格。 Shift + M:合并选中单元格。...在 Jupyter(或 IPython)中使一个单元同时有多个输出 想展示 pandas DataFrame 的 .head() 和 .tail(),但由于创建运行 .tail() 方法的额外代码单元过于麻烦而不得不中途放弃