SQL VS Pandas SELECT(数据选择) 在SQL中,选择是使用逗号分隔的列列表(或*来选择所有列): ? 在Pandas中,选择不但可根据列名称选取,还可以根据列所在的位置选取。...WHERE(数据过滤) 在SQL中,过滤是通过WHERE子句完成的: ? 在pandas中,Dataframe可以通过多种方式进行过滤,最直观的是使用布尔索引: ?...常见的SQL操作是获取数据集中每个组中的记录数。 ? Pandas中对应的实现: ? 注意,在Pandas中,我们使用size()而不是count()。...Pandas: ? 更多关于Groupy和数据透视表内容请阅读: 这些祝福和干货比那几块钱的红包重要的多! JOIN(数据合并) 可以使用join()或merge()执行连接。...Pandas: ? 总结: 本文从Pandas里面基本数据结构Dataframe的固定属性开始介绍,对比了做数据分析过程中的一些常用SQL语句的Pandas实现。
.iloc主要基于整数位置(从轴的0到length-1),但也可以与布尔数组一起使用。...注意 在应用可调用对象之前,将元组键解构为行(和列)索引,因此无法从可调用对象中返回元组以索引行和列。 从具有多轴选择的对象中获取值使用以下表示法(以.loc为例,但.iloc也适用)。...注意 对于.iloc索引,不支持从可调用返回元组,因为在应用可调用之前会发生行和列索引的元组解构。...以前,可以使用专用的 DataFrame.lookup 方法来实现这一点,该方法在版本 1.2.0 中已弃用,并在版本 2.0.0 中删除。...索引对象 pandas 的 Index 类及其子类可视为实现了一个有序多重集。允许存在重复值。 Index 还提供了进行查找、数据对齐和重新索引所必需的基础设施。
2.1 重新索引 2.2 丢弃指定轴上的项 2.3 索引、选取和过滤 2.4 用 loc 和 iloc 进行选取 2.5 整数索引 2.6 算术运算和数据对齐 2.7 在算术方法中填充值 2.8 DataFrame...,返回True is_unique 当Index没有重复值时,返回True unique 计算Ilndex中唯一值的数组 ---- 2.基本功能 2.1 重新索引 Pandas对象的一个重要方法是reindex...Index会被完全使用,就像没有任何复制一样 method 插值(填充)方式 fill_value 在重新索引的过程中,需要引入缺失值时使用的替代值 limit 前向或后向填充时的最大填充量 tolerance...它们可以让你用类似 NumPy 的标记,使用轴标签(loc)或整数索引(iloc),从DataFrame选择行和列的子集。...1,而不是组中相同的元素数 ---- 2.11 带有重复标签的轴索引 直到目前为止,所介绍的所有范例都有着唯一的轴标签(索引值)。
pandas 会缓存此结果,因此在相同的索引上重新检查非常快。 Index.duplicated()将返回一个布尔数组,指示标签是否重复。...如上所述,在读取原始数据时处理重复项是一个重要的功能。也就是说,您可能希望避免在数据处理管道中引入重复项(从方法如pandas.concat()、rename()等)。...重复标签的后果 一些 pandas 方法(例如Series.reindex())在存在重复时无法正常工作。输出结果无法确定,因此 pandas 会报错。...pandas 会缓存此结果,因此在相同的索引上重新检查非常快。 Index.duplicated()会返回一个布尔型 ndarray,指示标签是否重复。...如上所述,在读取原始数据时处理重复是一个重要功能。也就是说,您可能希望避免在数据处理流水线中引入重复(从方法如pandas.concat(),rename()等)。
Query Query是pandas的过滤查询函数,使用布尔表达式来查询DataFrame的列,就是说按照列的规则进行过滤操作。...,选择Ture表示允许新的列名与已存在的列名重复 接着用前面的df: 在第三列的位置插入新列: #新列的值 new_col = np.random.randn(10) #在第三列位置插入新列,从0开始计算...Sample Sample用于从DataFrame中随机选取若干个行或列。...,使用iloc: df.iloc[:3,:2] 使用loc: df.loc[:2,['group','year']]1 提示:使用loc时,索引是指index值,包括上边界。...Pct_change Pct_change是一个统计函数,用于表示当前元素与前面元素的相差百分比,两元素的区间可以调整。
# 2、upper() 将Series/Index中的字符串转换为大写。 # 3、len() 计算字符串长度。 # 4、strip() 帮助从两侧的系列/索引中的每个字符串中删除空格(包括换行符)。...# 10、repeat(value) 重复每个元素指定的次数。 # 11、count(pattern) 返回模式中每个元素的出现总数。...# 17、islower() 检查系列/索引中每个字符串中的所有字符是否小写,返回布尔值 # 18、isupper() 检查系列/索引中每个字符串中的所有字符是否大写,返回布尔值 # 19、isnumeric...() 检查系列/索引中每个字符串中的所有字符是否为数字,返回布尔值。...; right 使用右侧对象的键; outer 使用键的联合; inner 使用键的交集 # --*--coding:utf-8--*-- import pandas as pd left = pd.DataFrame
任何 None 对象都将被静默删除,除非它们都是 None 在这种情况下将引发 ValueError 。 axis :{0, 1, …},默认为 0。要沿其连接的轴。...如何处理其他轴上的索引。外部用于联合,内部用于交集。 ignore_index: 布尔值,默认为 False。如果为 True,则不要使用串联轴上的索引值。结果轴将被标记为 0, …, n - 1。...如果您在连接轴没有有意义的索引信息的情况下连接对象,这将非常有用。请注意,其他轴上的索引值在连接中仍然有效。 keys: 序列,默认无。使用传递的键作为最外层构建分层索引。...否则,它们将从密钥中推断出来。 names: 列表,默认无。生成的分层索引中级别的名称。 verify_integrity: 布尔值,默认为 False。检查新的串联轴是否包含重复项。...可以是列名称、索引级别名称或长度等于 DataFrame 或 Series 长度的数组 left_index:如果True,则使用左侧 DataFrame 或 Series 中的索引(行标签)作为其连接键
在按标签选择中查看更多信息。 .iloc主要基于整数位置(从轴的0到length-1),但也可以与布尔数组一起使用。...从具有多轴选择的对象获取值使用以下表示法(以.loc为例,但以下内容也适用于.iloc)。任何轴访问器都可以是空切片:。...注意 对于`.iloc`索引,不支持从可调用函数返回元组,因为在应用可调用函数之前会发生行和列索引的元组解构。...以前可以使用专用的DataFrame.lookup方法来实现这一点,该方法在 1.2.0 版本中已弃用,并在 2.0.0 版本中移除。...从索引派生的列的名称存储在names属性中。
在这里,我们将使用pd.concat函数的,看一下Series和DataFrame的简单连接;稍后我们将深入研究 Pandas 中实现的内存中的更复杂的合并和连接。...重复的索引 np.concatenate和pd.concat之间的一个重要区别是,Pandas 的连接保留了索引,即使结果会有重复的索引!...将重复捕获为错误 如果你想简单地验证,pd.concat()结果中的索引不重叠,你可以指定verify_integrity标志。将此设置为True,如果存在重复索引,则连接将引发异常。...print("ValueError:", e) ''' ValueError: Indexes have overlapping values: [0, 1] ''' 忽略索引 有时索引本身无关紧要...DataFrame,我们可以使用“分层索引”中讨论的工具,将这些数据转换成我们感兴趣的表示。
pandas 对非数值数据具有更直观的开箱即用行为。 如果由于某种原因(例如无法将字符串转换为float64)而转换失败,将引发ValueError。...重新索引 pandas 对象上的一个重要方法是reindex,它意味着创建一个新对象,其值重新排列以与新索引对齐。...重新索引特定轴的另一种方法是将新的轴标签作为位置参数传递,然后使用axis关键字指定要重新索引的轴: In [111]: frame.reindex(states, axis="columns") Out...如果您已经有一个不包含这些条目的索引数组或列表,那么从轴中删除一个或多个条目就很简单,因为您可以使用reindex方法或基于.loc的索引。...具有重复标签的轴索引 到目前为止,我们看过的几乎所有示例都具有唯一的轴标签(索引值)。
任何无对象将被静默删除,除非它们都是无,在这种情况下将引发一个ValueError。 axis:{0,1,…},默认为0。沿着连接的轴。...如何处理其他轴上的索引。outer为联合和inner为交集。 ignore_index:boolean,default False。如果为True,请不要使用并置轴上的索引值。...结果轴将被标记为0,…,n-1。如果要连接其中并置轴没有有意义的索引信息的对象,这将非常有用。注意,其他轴上的索引值在连接中仍然受到尊重。 join_axes:Index对象列表。...用于其他n-1轴的特定索引,而不是执行内部/外部设置逻辑。 keys:序列,默认值无。使用传递的键作为最外层构建层次索引。如果为多索引,应该使用元组。 levels:序列列表,默认值无。...结果层次索引中的级别的名称。 verify_integrity:boolean,default False。检查新连接的轴是否包含重复项。这相对于实际的数据串联可能是非常昂贵的。
按行或列应用函数 可以使用apply()方法沿着 DataFrame 的轴应用任意函数,类似描述性统计方法,该方法接受一个可选的axis参数: In [145]: df.apply(lambda x:...重新索引意味着使数据符合匹配特定轴上给定标签集的数据。...重新索引以与另一个对象对齐 你可能希望取一个对象并重新索引其轴,使其标签与另一个对象相同。...> + `join='right'`:使用传递对象的索引 > + > + `join='inner'`:交集索引 它返回一个包含两个重新索引 Series 的元组: ```py In...这允许您使用适当的字符串指定容差。### 从轴中删除标签 与reindex密切相关的方法是drop()函数。
对于行标签,如果我们不分配任何特定的索引,pandas默认创建整数索引。因此,行标签是从0开始向上的整数。与iloc一起使用的行位置也是从0开始的整数。...注:当使用loc时,包括索引的上界,而使用iloc则不包括索引的上界。...Pct_change 此函数用于计算一系列值的变化百分比。假设我们有一个包含[2,3,6]的序列。如果我们对这个序列应用pct_change,则返回的序列将是[NaN,0.5,1.0]。...从第一个元素到第二个元素增加了50%,从第二个元素到第三个元素增加了100%。Pct_change函数用于比较元素时间序列中的变化百分比。 df.value_1.pct_change() ? 9....例如,如果我们想将每个元素乘以一个数字,我们不需要也不应该使用applymap函数。在这种情况下,简单的矢量化操作(例如df*4)要快得多。 然而,在某些情况下,我们可能无法选择矢量化操作。
1.处理索引和轴 假设我们有2个关于考试成绩的数据集。...pd.concat([df1,df2]) 如果想要合并后忽略原来的索引,可以通过设置参数ignore_index=True,这样索引就可以从0到n-1自动排序了。...2.避免重复索引 我们知道了concat()函数会默认保留原dataframe的索引。那有些情况,我想保留原来的索引,并且我还想验证合并后的结果是否有重复的索引,该怎么办呢?...可以通过设置参数verify_integrity=True,将此设置True为时,如果存在重复的索引,将会报错。比如下面这样。...推荐阅读 pandas进阶宝典 数据挖掘实战项目 机器学习入门
为此,在使用前需要对这些数据进行一系列的检测与处理,包括处理重复值和缺失值、统一数据类型等,以保证数据具有更高的可用性。 3.1 重复值和空值处理 预处理的前两步就是检查缺失值和重复值。...如果希望检查准备的数据中是否存在重复的数据,则可以通过 Pandas中的 duplicated()方法完成。...# 重复数据检测 file_data.duplicated() 由于数据量相对较多,所以在 Jupyter NoteBook工具中有一部分数据会省略显示,但是从输出结果中仍然可以看到有多条返回结果为True...这里,处理重复数据的方式是将其删除。接下来,使用 drop_duplicates()方法直接删除重复的数据,具体代码如下。...对数据重复检测完成之后,便可以检测数据中是否存在缺失值,我们可以直接使用 dropna()方法检测并删除缺失的数据,具体代码如下。
创建一个 MultiIndex(层次化索引)对象 MultiIndex对象是标准Index对象的分层类比,通常在 pandas 对象中存储轴标签。...与往常一样,切片器的两侧都包含在内,因为这是标签索引。 警告 在.loc指定器中应指定所有轴,即索引和列的索引器。...在接下来的子章节中,我们将重点介绍一些其他索引类型。 CategoricalIndex CategoricalIndex是一种支持具有重复索引的索引类型。...这允许任意索引这些,即使值不在类别中,类似于如何重新索引任何pandas 索引。...创建一个 MultiIndex(层次化索引)对象 MultiIndex对象是标准Index对象的分层类比,通常在 pandas 对象中存储轴标签。
获取数据 我们本文会用到 MRF 过去五年的“调整价格”,用 pandas_datareader 可以从 Yahoo财经上获取所需的数据。...当然也可以只用调整收盘价,因为这是最相关的价格,应用在所有的金融分析中。...移动平均线是广泛应用于技术分析中的一个非常重要的指标。出于简要说明的目的,这里我们只计算 20 天移动平均线作为示例。...趋势和趋势分析同样广泛应用于技术分析中。如果在时间序列中定期出现一些模式,我们就说数据具有季节性。时间序列中的季节性会影响预测模型的结果,因此对它不能掉以轻心。...时间序列中的重复索引 有时你的时间序列会包含重复索引。
特别是,可以指定MultiIndex级别的名称,如果稍后使用reset_index()将值从MultiIndex移动到列中,则这是有用的。...在接下来的子节中,我们将突出一些其他索引类型。 CategoricalIndex CategoricalIndex 是一种支持重复索引的索引类型。...这允许任意索引这些,即使值不在类别中,类似于如何重新索引任何 pandas 索引。...这允许任意索引这些值,即使值不在类别中,类似于如何重新索引任何pandas 索引。...在 pandas 中,我们的一般观点是标签比整数位置更重要。因此,只有使用标准工具如 .loc 进行基于标签的索引。
panel data是经济学中关于多维数据集的一个术语,在Pandas中也提供了panel的数据类型。...#不管是Series对象还是DataFrame对象,都有索引对象 #索引对象负责管理轴标签和其他元数据(比如轴名称等) #通过索引可以从Series、DataFrame中取值或对某个位置的值重新赋值...#Series或者DataFrame自动化对齐功能就是通过索引进行的 #通过索引从Series中取值 ser=Series([20001,20003,20002,20004],index=['2001'...20000 ser['2002':'2003']=[20012,20013] #2001 20000 #2002 20012 #2003 20013 #2004 20004 #通过索引从...#在某个方向上拥有多个(两个及两个以上)索引级别 #通过层次化索引,pandas能够以低维度形式处理高维度数据 #通过层次化索引,可以按层级统计数据 #Series层次化索引 data=Series(
领取专属 10元无门槛券
手把手带您无忧上云