#获取第一行,0前面要加逗号,不然打印类型出来 a[:,0] #获取第一列,0后面加逗号 a[0,:] #按轴计算:axis=1 计算每一行的平均值 a.mean(axis=1) pandas二维数组...saleDf.mean() #查询第一行第二列的元素 salesDf.iloc[0.1] #获取第一行,代表所有列 salesDf.iloc[0,:] #获取第一列,代表所有行 salesDf.iloc.../pandas-docs/stable/generated/pandas.DataFrame.dropna.html #删除列(销售时间,社保卡号)中为空的行 #how='any' 在给定的任何一列中有缺失值就删除...ascending=True naposition='first') #重命名行号(index)排序后的列索引号是之前的行号,需要修改成从0到N按顺序的索引值 salesDf=salesDf.reset_index...totalI=kpi1_Df.shape[0] #第一步,按销售时间升序排序 kpil_Df=kpilDf.sort_value(by='销售时间', ascending=True) #重命名行名(
df[[col1, col2]]:以DataFrame形式返回多列 s.iloc[0]:按位置选取数据 s.loc['index_one']:按索引选取数据 df.iloc[0,:]:返回第一行 df.iloc...pd.notnull():检查DataFrame对象中的非空值,并返回一个Boolean数组 df.dropna():删除所有包含空值的行 df.dropna(axis=1):删除所有包含空值的列 df.dropna...(axis=1,thresh=n):删除所有小于n个非空值的行 df.fillna(x):用x替换DataFrame对象中所有的空值 s.astype(float):将Series中的数据类型更改为float...], ascending=[True,False]):先按列col1升序排列,后按col2降序排列数据 df.groupby(col):返回一个按列col进行分组的Groupby对象 df.groupby...([col1,col2]):返回一个按多列进行分组的Groupby对象 df.groupby(col1)[col2]:返回按列col1进行分组后,列col2的均值 df.pivot_table(index
刚开始学习pandas时要记住所有常用的函数和方法显然是有困难的,所以在Dataquest(https://www.dataquest.io/)我们主张查找pandas参考资料(http://pandas.pydata.org...pd.notnull() 与pd.isnull()相反 df.dropna() 删除包含空值的所有行 df.dropna(axis=1) 删除包含空值的所有列 df.dropna(axis=1,thresh...=n) 删除所有小于n个非空值的行 df.fillna(x) 用x替换所有空值 s.fillna(s.mean()) 将所有空值替换为均值(均值可以用统计部分中的几乎任何函数替换) s.astype(float...0.5的行 df[(df[col] > 0.5) & (1.7)] 0.7> col> 0.5的行 df.sort_values(col1) 将col1按升序对值排序 df.sort_values(col2...(col) 从一列返回一组对象的值 df.groupby([col1,col2]) 从多列返回一组对象的值 df.groupby(col1)[col2] 返回col2中的值的平均值,按col1中的值分组
,并以Series的形式返回列 df[[col1, col2]] # 以DataFrame形式返回多列 df.iloc[0] # 按位置选取数据 df.loc['index_one'] # 按索引选取数据...df.iloc[0,:] # 返回第一行 df.iloc[0,0] # 返回第一列的第一个元素 数据统计: df.describe() # 查看数据值列的汇总统计 df.mean() # 返回所有列的均值...> 0.5] # 选择col列的值大于0.5的行 df.sort_values(col1) # 按照列col1排序数据,默认升序排列 df.sort_values(col2, ascending=False...(col) # 返回一个按列col进行分组的Groupby对象 df.groupby([col1,col2]) # 返回一个按多列进行分组的Groupby对象 df.groupby(col1)[col2...,并计算col2和col3的最大值的数据透视表 df.groupby(col1).agg(np.mean) # 返回按列col1分组的所有列的均值 data.apply(np.mean) # 对DataFrame
+Tab(1-3次):查看函数方法说明 D, D:双击 D 删除本行 A / B:向上 / 下增加一行 M / Y:Markdown / 代码模式 03 导入库包 import pandas as pd...df.drop([0, 10], axis=0) # 删除行 del df['name'] # 删除列 df.dropna() # 删除所有包含空值的行 df.dropna(axis=1) # 删除所有包含空值的列...取列名的两个方法 df[df.index == 'Jude'] # 按索引查询要用 .index df[df[col] > 0.5] # 选择col列的值大于0.5的行 # 多条件查询 df[(df['...(s > 0) # 留下满足条件的,其他的默认为 NaN # 所有值加 1 (加减乘除等) df + 1 / df.add(1) # 管道方法,链式调用函数,f(df)=df.pipe(f) def gb...形式返回多列 df.loc[df['team'] == 'B',['name']] # 按条件查询,只显示name 列 s.iloc[0] # 按位置选取数据 s.loc['index_one'] #
2.查询特定列的数据 有的时候我们只想查看某几列的数据。在pandas里可以使用中括号或者loc,iloc等多种方式进行列选择,可以选择一列或多列。...5.查询带有多个条件的数据。 多个条件同时满足的情况 在前一小结基础上,pandas需要使用&符号连接多个条件,每个条件需要加上小括号;SQL需要使用and关键字连接多个条件。...多个条件满足其中一个的情况 与多个条件同时满足使用&相对应的,我们使用|符号表示一个条件满足的情况,而SQL中则用or关键字连接各个条件表示任意满足一个。...SQL操作时基本也是同样的逻辑,要指定主表,从表,连接方式和连接字段。此处我们使用user连接order并查询所有字段和所有记录。...删除操作可以细分为删除行的操作和删除列的操作。对于删除行操作,pandas的删除行可以转换为选择不符合条件进行操作。SQL需要使用delete关键字。
6.1 单行索引 data.loc[6] # 提取索引值为6的那一行(即输出第7行) 输出结果: ?...6.2 区域索引 6.2.1 用loc取连续的多行 提取索引值为2到索引值为4的所有行,即提取第3行到第5行,注意:此时切片的开始和结束都包括在内。 data.loc[2:4] 输出结果: ?...6.2.5 用iloc取连续的多行和多列 提取第3行到第6行,第4列到第5列的值,取得是行和列交叉点的位置。 data.iloc[2:6,3:5] 输出结果: ?...6.2.6 用iloc取不连续的多行和多列 提取第3行和第6行,第4列和第5列的交叉值 data.iloc[[2,6],[3,5]] 输出结果: ?...6.2.7 用iloc取具体值 提取第3行第7列的值 data.iloc[2,6] 输出结果:‘high’ 总结:文字变代码,数值少1;代码变文字,数值加1;代码从0开始计数;文字从1开始计数。
使用用dfply管道函数 ddfply直接在pandas DataFrames上工作,使用>>运算符链接对数据的操作,或者以>> =从inplace操作开始。...例如,如果要在步骤中从DataFrame中选择三列,请在下一步中删除第三列,然后显示最终数据的前三行,您可以执行以下操作: # 'data' is the original pandas DataFrame...允许您根据逻辑条件在pandas DataFrame中选择行的子集。...mask()选择条件为/的所有行。...; 默认行为是按升序对行进行排序。
上文我们合并后的df数据集就是有缺失数据的: 要删除空值,一个dropna即可搞定: dropna函数默认删除所有出现空值的行,即只要一行中任意一个字段为空,就会被删除。...,要基于“流量级别”这列进行去重,则可以: 我们会发现,流量有三个级别,通过指定subset参数,我们删除了这个字段重复的行,保留了各自不重复的第一行。...继续展开讲,在源数据中,流量渠道为“一级”的有7行数据,每行数据其他字段都不相同,这里我们删除了后6行,只保留了第一行,但如果我们想在去重的过程中删除前面6行,保留最后一行数据怎么操作?...keep值等于last,保留最后一行数据,不输入keep值时,系统默认会给keep赋值为first,就会保留第一行数据而删掉其他的。...,ascending参数决定了排序顺序,等于Flase则是从大到小的降序,设置为True则是升序。
从现有的列创建新列: ? 从 DataFrame 里删除行/列 想要删除某一行或一列,可以用 .drop() 函数。...如果你确定要永久性删除某一行/列,你需要加上 inplace=True 参数,比如: ?...获取 DataFrame 中的一行或多行数据 要获取某一行,你需要用 .loc[] 来按索引(标签名)引用这一行,或者用 .iloc[],按这行在表中的位置(行数)来引用。 ?...此外,你还可以制定多行和/或多列,如上所示。 条件筛选 用中括号 [] 的方式,除了直接指定选中某些列外,还能接收一个条件语句,然后筛选出符合条件的行/列。...你可以用逻辑运算符 &(与)和 |(或)来链接多个条件语句,以便一次应用多个筛选条件到当前的 DataFrame 上。举个栗子,你可以用下面的方法筛选出同时满足 'W'>0 和'X'>1 的行: ?
命令: 删除第1行,第4行数据 sed '1d;4d' sed.txt ? 演示2: 删除奇数行 从第一行开始删除,每隔2行就删掉一行。...演示3: 删除指定范围的多行数据 删除从第1行到第3行的数据 sed '1,3d' sed.txt # 1,3 从指定第1行开始到第3行结束 ?...演示3: 删除指定范围取反的多行数据 删除从第1行到第3行取反的数据 sed '1,3!d' sed.txt # 1,3! 从指定第1行开始到第3行结束取反, 就是不在这个范围的行 ?...演示2: 第一行删除后粘贴到最后1行 将模式空间第一行复制到暂存空间(覆盖方式)并删除, 最后将暂存空间的内容复制到模式空间中的最后一行(追加方式) sed '1{h;d};$G' sed.txt #...演示3: 第一行数据复制粘贴替换其他行数据 将模式空间第一行复制到暂存空间(覆盖方式), 最后将暂存空间的内容复制到模式空间中替换从第2行开始到最后一行的每一行数据(覆盖方式) sed '1h;2,$g
及DataFrame的使用方式 三、数据排序与查询 1、排序 例1:按语文分数排序降序,数学升序,英语降序 例2:按索引进行排序 2、查询 单条件查询 多条件查询 使用数据区间范围进行查询...的格式 data.loc['A'] # 取行名为'A'的行 data.loc[:,['x','z'] ] # 表示选取所有的行以及columns...取尾三行 **data= data.iloc[2:, 2:20] # 选择2行开始、2-11列** [m, n] = data.shape # 对m,n进行复制,...() # 删除有空值的行 data.dropna(axis=1) # 删除有空值的列 data.dropna(how='all')...# 删除所有值为Nan的行 data.dropna(thresh=2) # 至少保留两个非缺失值 data.strip() # 去除列表中的所有空格与换行符号
、处理缺失值、填充默认值、补全格式、处理极端值等; 建立高效的索引; 支持大体量数据; 按一定业务逻辑插入计算后的列、删除列; 灵活方便的数据查询、筛选; 分组聚合数据,可独立指定分组后的各字段计算方式...图2 读取数据的执行效果 其中: 自动增加了第一列,是Pandas为数据增加的索引,从0开始,程序不知道我们真正的业务索引,往往需要后面重新指定,使它有一定的业务意义; 由于数据量大,自动隐藏了中间部分...选择多列的可以用以下方法: # 选择多列 df[['team', 'Q1']] # 只看这两列,注意括号 df.loc[:, ['team', 'Q1']] # 和上一行效果一样 df.loc[x...的四个季度成绩 df.loc['Eorge':'Alexander', 'team':'Q4'] # 指定行区间 (4)条件选择 按一定的条件显示数据: # 单一条件 df[df.Q1 > 90]...df.mean() # 返回所有列的均值 df.mean(1) # 返回所有行的均值,下同 df.corr() # 返回列与列之间的相关系数 df.count() # 返回每一列中的非空值的个数
5、略过行和列 默认的read_excel参数假定第一行是列表名称,会自动合并为DataFrame中的列标签。...这只是个开始,并不是所有的功能,但已足够你“尝鲜”了。 二、查看的数据的属性 现在我们有了DataFrame,可以从多个角度查看数据了。...Pandas有很多我们可以使用的功能,接下来将使用其中一些来看下我们的数据集。 1、从“头”到“脚” 查看第一行或最后五行。默认值为5,也可以自定义参数。 ? 2、查看特定列的数据 ?...2、查看多列 ? 3、查看特定行 这里使用的方法是loc函数,其中我们可以指定以冒号分隔的起始行和结束行。注意,索引从0开始而不是1。 ? 4、同时分割行和列 ? 5、在某一列中筛选 ?...8、筛选不在列表或Excel中的值 ? 9、用多个条件筛选多列数据 输入应为列一个表,此方法相当于excel中的高级过滤器功能: ? 10、根据数字条件过滤 ?
数据处理过程中,经常需要对数据进行排序,使数据按指定的顺序排列(升序或降序)。 在Pandas中,排序功能已经实现好了,我们只需要调用对应的方法即可。...为了方便后面进行排序操作,只读取了数据中的前十行,并删除了一些列,设置“日期”和“收盘价”为索引。 ? 读取的原始数据如上图,本文基于这些数据来进行排序操作。 二、DataFrame排序操作 1....axis: 排序默认是按行索引排序(对每一行数据排序),axis参数默认为0,将axis参数设置成1则按列索引排序(对每一列数据排序)。不过,在实际应用中,对列排序的情况是极少的。...,显示成数值型索引(排序完成后从0开始编号)。...na_position参数只支持按单列排序时使用,在按多重索引或按多列排序时无效。
(2)DataFrame与Series之间的运算 将DataFrame的每一行与Series分别进行运算。...(1)Series数据结构的排序和排名 a、按索引值进行排序 b、按值进行排序 默认情况下,排序是按升序排列的,但也可通过ascending=False进行降序排列。...obj.rank() (2)DataFrame数据结构的排序和排名 按索引值进行排列,一列或多列中的值进行排序,通过by将列名传递给sort_index. 5、缺失数据处理 (1)滤出缺失数据 使用data.dropna...传入how=‘all’将只滤出全是缺失值的那一行。 要用这种方式滤出列,只需传入axis=1即可。...(列从0开始计数) 6、汇总和计算描述统计 就是针对数组进行常用的数学和统计运算。大部分都属于约简和汇总统计。 其中有求和(sum)运算、累计(cumsum)运算、平均值(mean)等运算。
在多列上对 DataFrame 进行排序 按升序按多列排序 更改列排序顺序 按降序按多列排序 按具有不同排序顺序的多列排序 根据索引对 DataFrame 进行排序 按升序按索引排序 按索引降序排序 探索高级索引排序概念...行和列都有索引,它是数据在 DataFrame 中位置的数字表示。您可以使用 DataFrame 的索引位置从特定行或列中检索数据。默认情况下,索引号从零开始。您也可以手动分配自己的索引。...索引不被视为一列,您通常只有一个行索引。行索引可以被认为是从零开始的行号。...您可以看到更改列的顺序也会更改值的排序顺序。 按降序按多列排序 到目前为止,您仅对多列按升序排序。在下一个示例中,您将根据make和model列按降序排序。...对于文本数据,排序区分大小写,这意味着大写文本将首先按升序出现,最后按降序出现。 按具有不同排序顺序的多列排序 您可能想知道是否可以使用多个列进行排序并让这些列使用不同的ascending参数。
BSD开源协议可以自修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。 但需要满足三个条件: 1.如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。...Series类对象的索引样式比较丰富,默认是自动生成的整数索引(从0开始递增),也可以是自定义的标签索引(由自定义的标签构成的索引)、时间戳索引(由时间戳构成的索引)等。...DataFrame类对象的行索引位于最左侧一列,列索引位于最上面一行,且每个列索引对应着一列数据。DataFrame类对象其实可以视为若干个公用行索引的Series类对象的组合。...axis:表示轴编号(排序的方向),0代表按行排序,1代表按列排序。 ascending:表示是否以升序方式排序,默认为True。若设置为False,则表示按降序方式排序。...),0代表按行排序,1代表按列排序。
领取专属 10元无门槛券
手把手带您无忧上云