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

Pandas入门2

image.png 5.3 DataFrame和Series之间的运算 默认情况下,DataFrame和Series之间的算术运算会将Series的索引匹配到DataFram的列,然后沿着行一直向下广播...复习字符串对象的4个方法:join方法连接字符串、 find方法寻找子字符串出现的索引位置、count方法返回子字符串出现的次数、 replace方法用来替换。...datetime.datetime也是用的最多的数据类型。 datetime以毫秒形式存储日期和时间,datetime.timedelta表示两个datetime对象之间的时间差。 ?...image.png 7.2 日期时间类与字符串相互转换 使用datetime模块中的datatime对象的strftime方法将时间转换为字符串,需要1个参数,参数为字符串格式。...方法的返回值的数据类型是字符串。 另外,其实time模块中有strftime方法,需要1个参数,参数为字符串格式。可以将现在的时间转换为字符串。 ?

4.2K20

python数据科学系列:pandas入门详细教程

这三者是构成递进包容关系,panel即是dataframe的容器,用于存储多个dataframe。...时间类型向量化操作,如字符串一样,在pandas中另一个得到"优待"的数据类型是时间类型,正如字符串列可用str属性调用字符串接口一样,时间类型列可用dt属性调用相应接口,这在处理时间类型时会十分有效。...,要求每个df内部列名是唯一的,但两个df间可以重复,毕竟有相同列才有拼接的实际意义) merge,完全类似于SQL中的join语法,仅支持横向拼接,通过设置连接字段,实现对同一记录的不同列信息连接,支持...inner、left、right和outer4种连接方式,但只能实现SQL中的等值连接 join,语法和功能与merge一致,不同的是merge既可以用pandas接口调用,也可以用dataframe对象接口调用...类似的效果,二者的区别在于:merge允许连接字段重复,类似一对多或者多对一连接,此时将产生笛卡尔积结果;而concat则不允许重复,仅能一对一拼接。

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

    【Python】这25个Pandas高频实用技巧,不得不服!

    有很多种实现的途径,我最喜欢的方式是传一个字典给DataFrame constructor,其中字典中的keys为列名,values为列的取值。...将DataFrame划分为两个随机的子集 假设你想要将一个DataFrame划分为两部分,随机地将75%的行给一个DataFrame,剩下的25%的行给另一个DataFrame。...将DataFrame划分为两个随机的子集 假设你想要将一个DataFrame划分为两部分,随机地将75%的行给一个DataFrame,剩下的25%的行给另一个DataFrame。...将一个字符串划分成多个列 我们先创建另一个新的示例DataFrame: df = pd.DataFrame({'name':['John Arthur Doe', 'Jane Ann Smith'],...它存储为一个MultiIndexed Series,也就是说它对实际数据有多个索引层级。

    6.6K50

    整理了 25 个 Pandas 实用技巧,拿走不谢!

    有很多种实现的途径,我最喜欢的方式是传一个字典给DataFrame constructor,其中字典中的keys为列名,values为列的取值。 ?...这种方式很好,但如果你还想把列名变为非数值型的,你可以强制地将一串字符赋值给columns参数: ? 你可以想到,你传递的字符串的长度必须与列数相同。 3....将一个字符串划分成多个列 我们先创建另一个新的示例DataFrame: ? 如果我们需要将“name”这一列划分为三个独立的列,用来表示first, middle, last name呢?...该结果展示了由Sex和Passenger Class联合起来的存活率。它存储为一个MultiIndexed Series,也就是说它对实际数据有多个索引层级。...但是,一个更灵活和有用的方法是定义特定DataFrame中的格式化(style)。 让我们回到stocks这个DataFrame: ? 我们可以创建一个格式化字符串的字典,用于对每一列进行格式化。

    3.2K10

    20个经典函数细说Pandas中的数据读取与存储

    float型读入 parse_dates: 将某一列日期型字符串传唤为datatime型数据,可以直接提供需要转换的列名以默认的日期形式转换,或者也可以提供字典形式的列名和转换日期的格式, 我们用PyMysql..._2': ['A', 'B', 'C', 'D']} 我们将orient参数设置为columns,将当中的键当做是列名 df = pd.DataFrame.from_dict(data, orient...1 b 2 2 c 3 to_json()方法 将DataFrame数据对象输出成JSON字符串,可以使用to_json()方法来实现,其中orient参数可以输出不同格式的字符串,用法和上面的大致相同...("test.pkl") read_xml()方法和to_xml()方法 XML指的是可扩展标记语言,和JSON类似也是用来存储和传输数据的,还可以用作配置文件 XML和HTML之间的差异 XML和HTML...为不同的目的而设计的 XML被设计用来传输和存储数据,其重点是数据的内容 HTML被设计用来显示数据,其焦点是数据的外观 XML不会替代HTML,是对HTML的补充 对XML最好的理解是独立于软件和硬件的信息传输工具

    3.2K20

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

    每种方法都将包括说明,可视化,代码以及记住它的技巧。 Pivot 透视表将创建一个新的“透视表”,该透视表将数据中的现有列投影为新表的元素,包括索引,列和值。...考虑一个二维矩阵,其一维为“ B ”和“ C ”(列名),另一维为“ a”,“ b ”和“ c ”(行索引)。 我们选择一个ID,一个维度和一个包含值的列/列。...默认情况下,合并功能执行内部联接:如果每个DataFrame的键名均未列在另一个键中,则该键不包含在合并的DataFrame中。...how参数是一个字符串,它表示四种连接 方法之一, 可以合并两个DataFrame: ' left ':包括df1的所有元素, 仅当其键为df1的键时才 包含df2的元素 。...为了防止这种情况,请添加一个附加参数join ='inner',该参数 只会串联两个DataFrame共有的列。 ? 切记:在列表和字符串中,可以串联其他项。

    13.3K20

    整理了25个Pandas实用技巧

    将DataFrame划分为两个随机的子集 假设你想要将一个DataFrame划分为两部分,随机地将75%的行给一个DataFrame,剩下的25%的行给另一个DataFrame。...该结果展示了由Sex和Passenger Class联合起来的存活率。它存储为一个MultiIndexed Series,也就是说它对实际数据有多个索引层级。...数据透视表的另一个好处是,你可以通过设置margins=True轻松地将行和列都加起来: ? 这个结果既显示了总的存活率,也显示了Sex和Passenger Class的存活率。...但是,一个更灵活和有用的方法是定义特定DataFrame中的格式化(style)。 让我们回到stocks这个DataFrame: ? 我们可以创建一个格式化字符串的字典,用于对每一列进行格式化。...我们可以通过链式调用函数来应用更多的格式化: ? 我们现在隐藏了索引,将Close列中的最小值高亮成红色,将Close列中的最大值高亮成浅绿色。 这里有另一个DataFrame格式化的例子: ?

    2.8K40

    整理了25个Pandas实用技巧(下)

    将DataFrame划分为两个随机的子集 假设你想要将一个DataFrame划分为两部分,随机地将75%的行给一个DataFrame,剩下的25%的行给另一个DataFrame。...如果你想对这个结果进行过滤,只想显示“五数概括法”(five-number summary)的信息,你可以使用loc函数并传递"min"到"max"的切片: 如果你不是对所有列都感兴趣,你也可以传递列名的切片...它存储为一个MultiIndexed Series,也就是说它对实际数据有多个索引层级。...数据透视表的另一个好处是,你可以通过设置margins=True轻松地将行和列都加起来: 这个结果既显示了总的存活率,也显示了Sex和Passenger Class的存活率。...但是,一个更灵活和有用的方法是定义特定DataFrame中的格式化(style)。 让我们回到stocks这个DataFrame: 我们可以创建一个格式化字符串的字典,用于对每一列进行格式化。

    2.4K10

    Python之数据规整化:清理、转换、合并、重塑

    合并数据集 pandas.merge可根据一个或者多个不同DataFrame中的行连接起来。 pandas.concat可以沿着一条轴将多个对象堆叠到一起。...实例方法combine_first可以将重复数据编接在一起,用一个对象中的值填充另一个对象中的缺失值。 2....数据风格的DataFrame合并操作 2.1 数据集的合并(merge)或连接(jion)运算时通过一个或多个键将行链接起来的。如果没有指定,merge就会将重叠列的列名当做键,最好显示指定一下。...外连接求取的是键的并集,组合了左连接和右连接。 2.3 都对的的连接是行的笛卡尔积。 2.4 merge的suffixes选项,用于指定附加到左右两个DataFrame对象的重叠列名上的字符串。...4.1 重塑层次化索引 层次化索引为DataFrame数据的重排任务提供了良好的一致性方式。主要两种功能: stack:将数据的列“旋转”为行。

    3.1K60

    数据分析从零开始实战 | 基础篇(四)

    .+”(匹配任何非空字符串)。默认值将返回页面上包含的所有标签包含的表格。 该值将转换为正则表达式,以便Beautiful Soup和LXML之间一致。...2.数据基本处理 (1)处理列名 # 处理列名 import re # 匹配字符串中任意空白字符的正则表达式 space = re.compile(r"\s+") def fix_string_spaces...(columnsToFix): ''' 将列名中的空白字符转变成下划线 ''' tempColumnNames = [] # 保存处理后的列名 # 循环处理所有列...,我解释一下 str1.split(str2) str1 表示被分隔的字符串;str2表示分隔字符串 str3.join(list1) str2 表示按什么字符串进行连接...,将列名里为空的字符转变成-符号,仔细一想,其实这个是可以通用的,比如处理某行数据里为空的,处理某个列表里为空的数据等,复用性很强。

    1.3K20

    Pandas知识点-合并操作merge

    上面的例子中,用于连接的列是key1,key2,k0,k0在两个DataFrame中都有,匹配到一次,k1,k1匹配到两次,k2,k2和k2,k3等都没有匹配成功,所以结果为三行(默认合并方式为inner...如果left_on和right_on指定不同的列,可能因为连接列的值匹配不上,结果是一个空DataFrame,将连接方式改成outer后才能得到非空的DataFrame。 ?...left_on和right_on可以与left_index和right_index混合使用,当指定了其中一个DataFrame的连接列时,必须同时指定另一个DataFrame的连接列,否则会报错。...suffixes: 当被合并的两个DataFrame中有相同的列名时,会给列名拼接后缀以作区分,默认为('_x', '_y')。可以修改suffixes参数进行设置,传入长度为2的字符串元组。...在新增的列中,如果连接列同时存在于两个DataFrame中,则对应的值为both,如果连接列只存在其中一个DataFrame中,则对应的值为left_only或right_only。

    4.4K30

    2021年大数据Spark(三十二):SparkSQL的External DataSource

    数据源与格式      数据分析处理中,数据可以分为结构化数据、非结构化数据及半结构化数据。   1)、结构化数据(Structured) 结构化数据源可提供有效的存储和性能。...例如,Parquet和ORC等柱状格式使从列的子集中提取值变得更加容易。 基于行的存储格式(如Avro)可有效地序列化和存储提供存储优势的数据。然而,这些优点通常以灵活性为代价。...无论是text方法还是textFile方法读取文本数据时,一行一行的加载数据,每行数据使用UTF-8编码的字符串,列名称为【value】。 ...// 设置每行数据各个字段之间的分隔符, 默认值为 逗号             .option("sep", "\t")             // 设置数据文件首行为列名称,默认值为 false...当将结果数据DataFrame/Dataset保存至Hive表中时,可以设置分区partition和分桶bucket,形式如下: ​​​​​​​保存模式(SaveMode)      将Dataset

    2.3K20

    干货:手把手教你用Python读写CSV、JSON、Excel及解析HTML

    DataFrame是一种数据结构,有点像Excel表格,列代表数据集的维度(例如,人的身高和体重),行存储着数据(例如,1000个人的具体身高和体重数据)。...和之前一样,分别将读取和写入的文件名定义为变量(r_filenameXML,w_filenameXML)。...加粗部分指的是列名()和对应的值()。 解析完所有字段后,使用'\n'.join(...)方法,将xmlItem列表中所有项连接成一个长字符串。......标签之间以\n分隔。这个字符串被返回给调用方(write_xml)。记录在write_xml(...)方法中进一步连接,并输出到文件。最后加上闭合标签,大功告成。...以’_’为间隔,连接列表元素。如果不含空白字符,就将原始列名加入列表。

    8.4K20

    Pandas数据合并:concat与merge

    本文将深入探讨Pandas中的两种主要合并方法——concat和merge,从基础概念到常见问题,再到报错解决,帮助读者全面掌握这两种方法。...二、concat的基本用法(一)概述concat函数用于沿着一个特定的轴(行或列)将多个Pandas对象(如DataFrame或Series)连接在一起。...(三)案例分析继续以上述学生成绩为例,如果我们想根据student_id将语文成绩和数学成绩合并到一个DataFrame中,并且希望保留所有学生的记录(即使有的学生缺少某一科成绩),我们可以使用merge...例如,将字符串类型的数字转换为数值类型。...# 假设有一个DataFrame中某列为字符串类型的数字df = pd.DataFrame({'id': [1, 2, 3], 'score': ['85', '90', '78']})df['score

    15510

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

    combine_first 将重叠数据拼接在一起,用另一个对象中的值填充另一个对象中的缺失值。 我将逐个讨论这些并给出一些示例。它们将在本书的其余部分的示例中使用。...注意 当您在列上进行列连接时,传递的 DataFrame 对象的索引会被丢弃。如果需要保留索引值,可以使用reset_index将索引附加到列中。 合并操作中要考虑的最后一个问题是处理重叠列名的方式。...必须在两个 DataFrame 对象中找到。如果未指定并且没有给出其他连接键,则将使用left和right中的列名的交集作为连接键。 left_on 用作连接键的left DataFrame 中的列。...suffixes 字符串元组值,用于在重叠的列名后追加(默认为("_x", "_y"),例如,如果两个 DataFrame 对象中都有"data",则在结果中会显示为"data_x"和"data_y"。...数据经常以这种方式存储在关系型 SQL 数据库中,因为固定的模式(列名和数据类型)允许item列中的不同值的数量随着数据添加到表中而改变。

    31200

    Pandas 2.2 中文官方教程和指南(十·二)

    存储多级索引的 DataFrames 将多级索引的 DataFrames 存储为表与存储/选择同质索引的 DataFrames 非常相似。...不支持重复的列名和非字符串的列名 不支持对象数据类型列中的实际 Python 对象。在尝试序列化时,这些将引发一个有用的错误消息。 查看完整文档。...当你将这个文件加载到DataFrame中时,这将创建一个只包含两个预期列a和b的 Parquet 文件。...保持连接打开的副作用可能包括锁定数据库或其他破坏性行为。 写入数据框 假设以下数据存储在一个DataFrame data中,我们可以使用to_sql()将其插入到数据库中。...例如,在 Stata 中,int8 值限制在 -127 和 100 之间,因此值大于 100 的变量将触发转换为 int16。

    35900

    Python数据分析模块 | pandas做数据分析(二):常用预处理操作

    如果在columns和columns上面进行join,那么indexes就会被忽略.同样,要是在indexes和indexes之间或者indexes和columns之间进行join,那么index也会被忽略...prefix : 字符串,或者字符串列表,或者字符串字典.默认为None,这里应该传入一个字符串列表,且这个列表的长度是和将要被get_dummis的那些列数量是相等的.同样,prefix选项也可以是一个把列名映射到...#每一个特征(原始形式的列名)下面有几种不同的类别,就会生成几列(比如A下面只有a和b两种形式,就会生成A_a和A_b两列) #原始为数字的那些特征,保持不变 #prefix表示你对于新生成的那些列想要的前缀...4、处理缺失值 pandas使用浮点数NaN(not a number)表示浮点和非浮点数组中的缺失数据....查找缺失值 DataFrame.isnull() 作用,返回一个和原来DataFrame一样形状的,里面值为布尔型的DataFrame.

    1.8K60

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

    实例方法combine_first可以将重复数据编接在一起,用一个对象中的值填充另一个对象中的缺失值。 我将分别对它们进行讲解,并给出一些例子。本书剩余部分的示例中将经常用到它们。...注意:在进行列-列连接时,DataFrame对象中的索引会被丢弃。 对于合并运算需要考虑的最后一个问题是对重复列名的处理。...重塑层次化索引 层次化索引为DataFrame数据的重排任务提供了一种具有良好一致性的方式。主要功能有二: stack:将数据的列“旋转”为行。 unstack:将数据的行“旋转”为列。...长格式”旋转为“宽格式” 多个时间序列数据通常是以所谓的“长格式”(long)或“堆叠格式”(stacked)存储在数据库和CSV中的。...表中的每行代表一次观察。 关系型数据库(如MySQL)中的数据经常都是这样存储的,因为固定架构(即列名和数据类型)有一个好处:随着表中数据的添加,item列中的值的种类能够增加。

    2.7K90

    Pandas

    如果想给缺失值赋予自己想要的值,则需要利用方法,以 add 为例 df1.add(df2,fill_value=0) r 表示翻转参数 Df 和 Ser 之间的算术运算 与数组的不同维度的数组进行算术运算的方法相似...在多数情况下,对时间类型数据进行分析的前提就是将原本为字符串的时间转换为标准时间类型。pandas 继承了 NumPy 库和 datetime 库的时间相关模块,提供了 6 种时间相关的类。...()方法 多个 dataframe 连接(通过 index 匹配进行)(Join and Merge) 通过一个或多个键将两个数据集的列连接起来(完成 SQl 的 join 操作):pandas.merge...()函数和pandas.DataFrame.join()方法,多表的连接要把被连接的 df 名称以列表的形式传入 pd.merge(df1,df2,on=‘column_name’) pd.merge...传入一个函数名组成的列表,则会将每一个函数的函数名作为返回值的列名,如果不希望使用函数名作为列名,可以将列表中的元素写成类似’(column_name,function)'的元组形式来指定列名为name

    9.2K30
    领券