首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python替代Excel Vba系列(三):pandas处理不规范数据

本文要点: 使用 pandas 处理不规范数据。 pandas 中的索引。...---- 这是典型的报表输出格式,其中有合并单元格,内容把科目和人名回到一起去。由于案例原有的需求比较繁琐,本文核心是处理数据,因此简化了需求。...---- ---- 我们来看看数据: 注意看左上角有3个 nan ,是因为表格的标题行前3列是空的。 由于前2列有合并单元格,出现了很多 nan。 此外注意看第3列,把课时序号显示成小数。...---- ---- 看看现在的数据,如下: ---- 剩下的工作则非常简单,主要是把班级和内容分成2列。...---- 数据如下: ---- ---- 最后 本文通过实例展示了如何在 Python 中使用 xlwings + pandas 灵活处理各种的不规范格式表格数据。

5K30

Pandas 2.2 中文官方教程和指南(一)

例如,要安装带有可选依赖项以读取 Excel 文件的 pandas。 pip install "pandas[excel]" 可以在依赖部分找到可以安装的全部额外内容列表。...如果显示类似“/usr/bin/python”的内容,则表示您正在使用系统中的 Python,这是不推荐的。 强烈建议使用conda,以快速安装和更新包和依赖项。...pandas 非常适合许多不同类型的数据: 具有异构类型列的表格数据,如 SQL 表或 Excel 电子表格 有序和无序(不一定是固定频率)的时间序列数据 具有行和列标签的任意矩阵数据(同质或异质类型)...如何选择 DataFrame 的子集? 如何在 pandas 中创建图表?...如何从现有列派生新列 如何计算摘要统计信息 如何重新设计表格布局 如何合并来自多个表的数据 如何轻松处理时间序列数据 如何操作文本数据 pandas 处理什么类型的数据

97110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    盘点 Pandas 中用于合并数据的 5 个最常用的函数!

    作者:阿南 整理:小五 如何在Pandas合并数据,大家肯定都不陌生。 作为一个初学者,我发现自己学了很多,却没有好好总结一下。...pd.concat([df0, df1], axis=1) 默认情况下,当我们横向合并数据(沿列)时,Pandas其实是按照索引来连接的。...当两者的索引不相同时,就会用 NaN 填充不重叠的,举个例子如下所示。...df0.merge(df1, left_on="a", right_on="c") 除了 a 和 c 的单独列之外,它的结果与之前的合并几乎相同。这里,额外提两个特殊参数:笛卡尔积、使用后缀。...在这种情况下,df1 的 a 列和 b 列将作为平方,产生最终值,如上面的代码片段所示 5、append 回顾前文,我们讨论的大多数操作都是针对按列来合并数据。 如果按行合并(纵向)该如何操作呢?

    3.4K30

    深入理解pandas读取excel,tx

    pandas读取文件官方提供的文档 在使用pandas读取文件之前,必备的内容,必然属于官方文档,官方文档查阅地址 http://pandas.pydata.org/pandas-docs/version.../test.txt") print(df) 但是,注意,这个地方读取出来的数据内容为3行1列的DataFrame类型,并没有按照我们的要求得到3行4列 import pandas as pd df =...squeeze 默认为False, True的情况下返回的类型为Series,如果数据经解析后仅含一行,则返回Series prefix 自动生成的列名编号的前缀,如: ‘X’ for X0, X1,...都表现为NAN keep_default_na 如果指定na_values参数,并且keep_default_na=False,那么默认的NaN将被覆盖,否则添加 na_filter 是否检查丢失值(空字符串或者是空值...{‘foo’ : [1, 3]} -> 将1,3列合并,并给合并后的列起名为"foo" infer_datetime_format 如果设定为True并且parse_dates 可用,那么pandas将尝试转换为日期类型

    6.2K10

    深入理解pandas读取excel,txt,csv文件等命令

    pandas读取文件官方提供的文档 在使用pandas读取文件之前,必备的内容,必然属于官方文档,官方文档查阅地址 http://pandas.pydata.org/pandas-docs/version.../test.txt") print(df) 但是,注意,这个地方读取出来的数据内容为3行1列的DataFrame类型,并没有按照我们的要求得到3行4列 import pandas as pd df =...squeeze 默认为False, True的情况下返回的类型为Series,如果数据经解析后仅含一行,则返回Series prefix 自动生成的列名编号的前缀,如: ‘X’ for X0, X1,...都表现为NAN keep_default_na 如果指定na_values参数,并且keep_default_na=False,那么默认的NaN将被覆盖,否则添加 na_filter 是否检查丢失值(空字符串或者是空值...{‘foo’ : 1, 3} -> 将1,3列合并,并给合并后的列起名为"foo" infer_datetime_format 如果设定为True并且parse_dates 可用,那么pandas将尝试转换为日期类型

    12.3K40

    直观地解释和可视化每个复杂的DataFrame操作

    要记住:Explode某物会释放其所有内部内容-Explode列表会分隔其元素。 Stack 堆叠采用任意大小的DataFrame,并将列“堆叠”为现有索引的子索引。...此键允许将表合并,即使它们的排序方式不一样。完成的合并DataFrame 默认情况下会将后缀_x 和 _y添加 到value列。 ?...默认情况下,合并功能执行内部联接:如果每个DataFrame的键名均未列在另一个键中,则该键不包含在合并的DataFrame中。...“inner”:仅包含元件的键是存在于两个数据帧键(交集)。默认合并。 记住:如果您使用过SQL,则单词“ join”应立即与按列添加相联系。...请注意,concat是pandas函数,而不是DataFrame之一。因此,它接受要连接的DataFrame列表。 如果一个DataFrame的另一列未包含,默认情况下将包含该列,缺失值列为NaN。

    13.3K20

    Python 数据分析(PYDA)第三版(四)

    7 NaN d 2 在外连接中,左侧或右侧 DataFrame 对象中与另一个 DataFrame 中的键不匹配的行将在另一个 DataFrame 的列中出现...在索引上合并 在某些情况下,DataFrame 中的合并键会在其索引(行标签)中找到。...特别是,您有许多额外的考虑: 如果对象在其他轴上的索引不同,我们应该合并这些轴中的不同元素还是仅使用共同的值? 连接的数据块在结果对象中需要被识别吗? “连接轴”中包含需要保留的数据吗?...与在新的 DataFrame 中将一个列转换为多个不同,它将多个列合并为一个,生成一个比输入更长的 DataFrame。...这里由 fig.add_subplot 返回的对象是 AxesSubplot 对象,您可以通过调用每个实例方法直接在其他空子图上绘制(参见添加额外绘图后的数据可视化): In [22]: ax1.hist

    31200

    python学习之pandas

    2,Pandas纳入大量库和标准数据模型,提供搞笑的操作数据集所需的工具 3.pandas提供大量能使我们快速便捷地处理数据的1函数方法 4,Pandas是字典形式,基于Numpy创建,让Numpy为中心的应用变得更加简单...])#索引在左边值在右边 print(s) #4.2 Date Frame #DateFrame是表格型数据结构,包含一组有序的列,每列可以使不同的值类型。...print(df_1.sort_index(axis=1,ascending=False))#axis等于按第一列排序,如ABCDEFG,然后ascending倒序进行显示 print(df_1.sort_values...print(df.iloc[3:5,0:2])#3,5行,0,3列 print(df.iloc[[1,2,4],[0,2]])#不连续筛选 print(df[df.A > 0])#筛选出df.A大于0...,periods=6))#添加一列 print(df) #7Pandas处理数据 dates = pd.date_range('20180310',periods=6) df = pd.DataFrame

    95010

    pandas模块(很详细归类),pd.concat(后续补充)

    1, 2, 3, 4, np.nan, ]) s = pd.Series(arr) print(s) #也可以不转换,但是转换后可以减少内存,尽量进行转换 # arr = np.array([1, 2,...(数据内容,index=纵坐标,columns=横坐标)#数据内容必须是列表或者np.array格式,尽量用np.array格式减少内存 #生成的数据列表预定俗称最好命名成df #对df的取值 2.pd.DataFrame...[起始横坐标:结束横坐标] 必须是横坐标,纵坐标的名称而不去索引,前后可以相同就取起始横坐标这一行 9.df里的值按列取取列 取某一列,df[这列的对应的横坐标] 取多列,df[[第一列的对应的横坐标,...(subset=['c2']) 删除c2中有NaN值的数据 6.df重空值进行添加 df.fillna(value=10)空值填充10 7.df进行合并 1.pd.concat((df1, df2),...axis=1) 合并行列都可以由axis控制 2.df1.append(df2) append只能合并列

    1.5K20

    2天学会Pandas

    根据位置设置loc和iloc4.3 根据条件设置4.4 按行或列设置4.5 添加Series序列(长度必须对齐)4.6 设定某行某列为特定值4.7 修改一整行数据5.Pandas处理丢失数据5.1 创建含...NaN的矩阵5.2 删除掉有NaN的行或列5.3 替换NaN值为0或者其他5.4 是否有缺失数据NaN6.Pandas导入导出6.1 导入数据6.2 导出数据7.Pandas合并操作7.1 Pandas...不同点:ix可以混合选择,可以填入column对应的字符选择,而iloc只能采用index索引,对于列数较多情况下,ix要方便操作许多。...# 按行或列设置 # 列批处理,F列全改为NaN df['F'] = np.nan print(df) 4.5 添加Series序列(长度必须对齐) df['E'] = pd.Series([1,2,3,4,5,6...此方法是依照column来做纵向合并,有相同的column上下合并在一起, 其他独自的column各自成列,原来没有值的位置皆为NaN填充。

    1.6K20

    《利用Python进行数据分析·第2版》第8章 数据规整:聚合、合并和重塑8.1 层次化索引8.2 合并数据集8.3 重塑和轴向旋转8.4 总结

    pandas对象中的数据可以通过一些方式进行合并: pandas.merge可根据一个或多个键将不同DataFrame中的行连接起来。...表8-1 不同的连接类型 多对多的合并有些不直观。...indicator 添加特殊的列_merge,它可以指明每个行的来源,它的值有left_only、right_only或both,根据每行的合并数据的来源。...表中的每行代表一次观察。 关系型数据库(如MySQL)中的数据经常都是这样存储的,因为固定架构(即列名和数据类型)有一个好处:随着表中数据的添加,item列中的值的种类能够增加。...有的情况下,使用这样的数据会很麻烦,你可能会更喜欢DataFrame,不同的item值分别形成一列,date列中的时间戳则用作索引。

    2.7K90

    Python数据分析(2)-pandas数据结构操作

    pandas是一个提供快速、灵活、表达力强的数据结构的Python库,适合处理‘有关系’或者‘有标签’的数据。在利用Python做数据分析的时候,pandas是一个强有力的工具。...在掌握DataFrame的操作后,自然也就熟悉了Series的操作,因而不描述如何操作Series。 1....如果是字典,则字典的keys默认为dataframe的columns index 列表,如果不指定则默认产生np.arange(n) columns 列表,如果不指定则默认产生np.arange(n)...其实就相当于合并了两个dataframe,取了并集。所以在增加行的时候需要保证列能够参数对齐。...,一般为[df1,df2,…dfn] axis 合并方向,0为按照index合并,即从下面添加;1为按照columns合并,即从右边添加 join 合并方式。

    1.5K110

    python数据分析笔记——数据加载与整理

    2、当文件没有标题行时 可以让pandas为其自动分配默认的列名。 也可以自己定义列名。 3、将某一列作为索引,比如使用message列做索引。通过index_col参数指定’message’。...5、文本中缺失值处理,缺失数据要么是没有(空字符串),要么是用某个标记值表示的,默认情况下,pandas会用一组经常出现的标记值进行识别,如NA、NULL等。查找出结果以NAN显示。...也可以根据多个键(列)进行合并,用on传入一个由列名组成的列表即可。...(2)对于pandas对象(如Series和DataFrame),可以pandas中的concat函数进行合并。...利用drop_duplicates方法,可以返回一个移除了重复行的DataFrame. 默认情况下,此方法是对所有的列进行重复项清理操作,也可以用来指定特定的一列或多列进行。

    6.1K80
    领券