贪婪和非贪婪模式 Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符; 非贪婪则相反,总是尝试匹配尽可能少的字符。 在*、?、+、{m,n}后面加上?...使贪婪变成非贪婪。 s = "This is a number 234-235-22-423" r = re.match("....(\d+-\d+-\d+-\d+)", s) r.group(1) # '234-235-22-423' 正则表达式模式中使用到通配字,那它在从左到右的顺序求值时,会尽量“抓取”满足匹配最长字符串,在我们上面的例子里面...+会从字符串的启始处抓取满足模式的最长字符,其中包括我们想得到的第一个整型字段的中的大部分,\d+只需一位字符就可以匹配,所以它匹配了数字4,而....+则匹配了从字符串起始到这个第一位数字4之前的所有字符。
s.value_counts(dropna=False):查看Series对象的唯一值和计数 df.apply(pd.Series.value_counts):查看DataFrame对象中每一列的唯一值和计数...():检查DataFrame对象中的空值,并返回一个Boolean数组 pd.notnull():检查DataFrame对象中的非空值,并返回一个Boolean数组 df.dropna():删除所有包含空值的行...列col2的均值 df.pivot_table(index=col1, values=[col2,col3], aggfunc=max):创建一个按列col1进行分组,并计算col2和col3的最大值的数据透视表...):查看数据值列的汇总统计 df.mean():返回所有列的均值 df.corr():返回列与列之间的相关系数 df.count():返回每一列中的非空值的个数 df.max():返回每一列的最大值 df.min...():返回每一列的最小值 df.median():返回每一列的中位数 df.std():返回每一列的标准差
当我们生成或者导入了数据之后,通过数据的探索工作能够快速了解和认识数据基本信息,比如数据中字段的类型、索引、最值、缺失值等,可以让我们对数据的全貌有一个初步了解。...] 查看均值 一般 DataFrame 计算后为一个 Series,Series 计算后是一个具体的数值 下面的代码是按照列来计算均值: df.mean() # 按列计算 # 结果 age...) # 返回所有行的均值 df.max() # 返回每一列的最大值 df.min() # 返回每一列的最小值 df.median() # 返回每一列的中位数 df.std() # 返回每一列的标准差,...贝塞尔校正的样本标准偏差 df.var() # 无偏方差 df.corr() # 返回列与列之间的相关系数 df.count() # 返回每一列中的非空值的个数 df.prod() # 连乘 df.mad...df.idxmax() # 每列最大的值的索引名 df.idxmin() # 最小 df.cummin() # 累积最小值 df.cummax() # 累积最大值 df.skew() # 样本偏度 (
DataFrame和Series是Pandas最基本的两种数据结构 可以把DataFrame看作由Series对象组成的字典,其中key是列名,值是Series Series和Python...中的列表非常相似,但是它的每个元素的数据类型必须相同 创建 Series 的最简单方法是传入一个Python列表 import pandas as pd s = pd.Series([ ' banana...() # 统计每个取值在数据集中出现了多少次 share.count() # 返回有多少非空值 share.describe() # 一次性计算出 每一列 的关键统计量 平均值,...的行数,列数 df.shape # 查看df的columns属性,获取DataFrame中的列名 df.columns # 查看df的dtypes属性,获取每一列的数据类型 df.dtypes df.info...对象就是把continent取值相同的数据放到一组中 df.groupby(‘continent’)[字段] → seriesGroupby对象 从分号组的Dataframe数据中筛序出一列 df.groupby
上一集开始学习了Pandas的数据结构(Series和DataFrame),以及DataFrame一些基本操作:改变索引名、增加一列、删除一列、排序。 今天我将继续学习Pandas。...一、描述性统计 想拿一个简单的数据试试手,翻到了一份我国2012-2015年季度GDP的数据,如下表(单位:万亿), ? 想整理到DataFrame中,如何处理?...得到了一张非常清爽的DataFrame数据表。 现在我要对这张表进行简单的描述性统计: 1. 加总 .sum()是将数据纵向加总(每一列加总) ?...一些函数记录在此(参考书本《利用Python进行数据分析》): 方法 描述 count() 非NA值的数量 describe() 各列的汇总统计 min()、max() 最小、最大值 argmin()、...也可以单独只计算两列的系数,比如计算S1与S3的相关系数: ? 二、缺失值处理 Pandas和Numpy采用NaN来表示缺失数据, ? 1.
比如说我们现在有这样一张表,那么把这张表做成dataframe,先把每一列都提取出来,然后将这些在列的数据都放到一个大的集合里,在这里我们使用字典。...这就是我们上节课讲的,Series有默认索引,从零开始,那这个dataframe也就会和Series一样,如果不给他指定值(列名或索引),他就会从零开始计数。...):查看DataFrame对象中每一列的唯一值和计数 print(df.head(2)) print(df[0:2]) ?...在DataFrame中增加一列,我们可以直接给值来增加一列,就和python的字典里面添加元素是一样的: import pandas as pd import numpy as np val = np.arange...df.count()#非空元素计算 df.min()#最小值 df.max()#最大值 df.idxmin()#最小值的位置,类似于R中的which.min函数 df.idxmax()#最大值的位置,类似于
(1) # 返回所有行的均值,下同 df.corr() # 返回列与列之间的相关系数 df.count() # 返回每一列中的非空值的个数 df.max() # 返回每一列的最大值 df.min() #...() # 累积连乘,累乘 df.cumsum(axis=0) # 累积连加,累加 s.nunique() # 去重数量,不同值的量 df.idxmax() # 每列最大的值的索引名 df.idxmin(...(dropna=False) # 查看 DataFrame 对象中每一列的唯一值和计数 df.apply(pd.Series.value_counts) df.duplicated() # 重复行 df.drop_duplicates...对象中的空值,并返回一个 Boolean 数组 pd.notnull() # 检查DataFrame对象中的非空值,并返回一个 Boolean 数组 df.drop(['name'], axis=1)...中的每一列应用函数 np.mean data.apply(np.max,axis=1) # 对 DataFrame 中的每一行应用函数 np.max df.insert(1, 'three', 12,
处理空值有两种选择: 去掉带有空值的行或列 用非空值替换空值,这种技术称为imputation 让我们计算数据集的每一列的空值总数。...为了计算每个列中的空值,我们使用一个聚合函数进行求和: print (movies_df.isnull().sum()) 运行结果: rank 0 genre...删除空值非常简单: movies_df.dropna() 这个操作将删除至少有一个空值的任何行,但是它将返回一个新的DataFrame,而不改变原来的数据。...可能会有这样的情况,删除每一行的空值会从数据集中删除太大的数据块,所以我们可以用另一个值来代替这个空值,通常是该列的平均值或中值。 让我们看看在revenue_millions列中输入缺失的值。...如果您还记得我们从零开始创建DataFrames时,dict的键最后是列名。现在,当我们选择DataFrame的列时,我们使用方括号,就像访问Python字典一样。
['grammer'].value_counts() 6 缺失值处理 题目:将空值用上下值的平均值填充 难度:⭐⭐⭐ Python解法 # pandas里有一个插值方法,就是计算缺失值上下两数的均值...解法 df.set_index("createTime") 42 数据创建 题目:生成一个和df长度相同的随机数dataframe 难度:⭐⭐ Python解法 df1 = pd.DataFrame(...'] % 5==0) 92 数据计算 题目:计算第一列数字前一个与后一个的差值 难度:⭐⭐ Python解法 df['col1'].diff().tolist() 93 数据处理 题目:将col1,col2...([1,10,15]) # 等价于 df.iloc[[1,10,15],0] 95 数据查找 题目:查找第一列的局部最大值位置 难度:⭐⭐⭐⭐ 备注 即比它前一个与后一个数字的都大的数字 Python解法...'col1']-df['col2']) # 194.29873905921264 101 数据读取 题目:从CSV文件中读取指定数据 难度:⭐⭐ 备注 从数据1中的前10行中读取positionName
Pandas是一个受众广泛的python数据分析库。它提供了许多函数和方法来加快数据分析过程。pandas之所以如此普遍,是因为它的功能强大、灵活简单。...使用query函数的语法十分简单: df.query('value_1 < value_2') ? 2. Insert 当我们想要在 dataframe 里增加一列数据时,默认添加在最后。...这样得到的累积值在某些情况下意义不大,因为我们更需要不同小组的累计数据。对于这个问题有一个非常简单方便的解决方案,我们可以同时应用groupby和cumsum函数。...Describe describe函数计算数字列的基本统计信息,这些列包括计数、平均值、标准偏差、最小值和最大值、中值、第一个和第三个四分位数。因此,它提供了dataframe的统计摘要。 ?...Replace 顾名思义,它允许替换dataframe中的值。第一个参数是要替换的值,第二个参数是新值。 df.replace('A', 'A_1') ? 我们也可以在同一个字典中多次替换。
我们可以在一个 dataframe 中查看每一列的缺失值比例: fs.missing_stats.head() ?...和之前一样,我们可以访问将会被移除的整个相关特征列表,或者在一个 dataframe 中查看高度相关的特征对。...根据前面的累积重要度图和这一信息,梯度提升机认为很多特征都与学习无关。重申一下,每次训练运行后该方法的结果都不一样。...如果使用这些方法,多次运行它们看到结果的改变情况,也许可以创建具有不同参数的多个数据集来进行测试! 单个唯一值特征 最后一个方法相当基础:找出任何有单个唯一值的列。...我们可以绘制每个类别唯一值数量的直方图: fs.plot_unique() ? 还有一点要记住,在计算唯一值之前,NaNs 已经使用 Pandas 默认移除了。
然后,你可以使用read_clipboard()函数将他们读取至DataFrame中: ? 和read_csv()类似,read_clipboard()会自动检测每一列的正确的数据类型: ?...为了找出每一列中有多少值是缺失的,你可以使用isna()函数,然后再使用sum(): ?...类似地,你可以通过mean()和isna()函数找出每一列中缺失值的百分比。 ? 如果你想要舍弃那些包含了缺失值的列,你可以使用dropna()函数: ?...set_option()函数中第一个参数为选项的名称,第二个参数为Python格式化字符。可以看到,Age列和Fare列现在已经保留小数点后两位。...Volume列现在有一个渐变的背景色,你可以轻松地识别出大的和小的数值。 最后一个例子: ? 现在,Volumn列上有一个条形图,DataFrame上有一个标题。
问题描述在pandas的DataFrame格式数据中,每一列可以是不同的数据类型,如数值型、字符串型、日期型等。而ndarray格式数据需要每个元素都是相同类型的,通常为数值型。...这种方法在数据处理和分析中是常见且实用的技巧,希望本文对你有所帮助。在实际应用场景中,我们可能会遇到需要对DataFrame中的某一列进行运算的情况。...例如,我们有一个销售数据的DataFrame,其中包含了产品名称、销售数量和单价。现在我们希望计算每个产品的销售总额。...然后,我们可以直接对这两个ndarray进行运算,得到每个产品的销售总额。最后,将运算结果添加到DataFrame中的Sales Total列。...例如a.mean()可以计算数组a的均值。**max()和min()**:获取数组的最大值和最小值。例如a.max()可以获取数组a的最大值。
难度:⭐⭐⭐ Python解法 # pandas里有一个插值方法,就是计算缺失值上下两数的均值 df['popularity'] = df['popularity'].fillna(df['popularity...解法 df.tail() R解法 # R中head和tail默认是6行,可以指定数字 tail(df,5) 17 数据修改 题目:删除最后一行数据 难度:⭐ Python解法 df = df.drop(...完全一致的函数 #考虑到expanding实际功能就是累积均值 #可以用cummean #但cummean的功能和我预想的不同 #可能是包之间相互干扰 #最后采用cumsum/1:n的形式完成本题 res...5的数字位置 难度:⭐⭐⭐ Python解法 np.argwhere(df['col1'] % 5==0) R语言解法 which(df['col1'] %% 5==0) 92 数据计算 题目:计算第一列数字前一个与后一个的差值...]) # 等价于 df.iloc[[1,10,15],0] R语言解法 df[c(1,10,15) + 1,1] 95 数据查找 题目:查找第一列的局部最大值位置 难度:⭐⭐⭐⭐ 备注 即比它前一个与后一个数字的都大的数字
$popularity),] 16 数据查看 题目:查看最后5行数据 难度:⭐ R解法 # R中head和tail默认是6行,可以指定数字 tail(df,5) 17 数据修改 题目:删除最后一行数据...题目:使用expending函数计算开盘价的移动窗口均值 难度:⭐⭐ R解法 #R中没有expanding完全一致的函数 #考虑到expanding实际功能就是累积均值 #可以用cummean #但...which(df['col1'] %% 5==0) 92 数据计算 题目:计算第一列数字前一个与后一个的差值 难度:⭐⭐ R语言解法 df %>% summarise(col1 - lag(col1...1,10,15的数字 难度:⭐⭐ R语言解法 df[c(1,10,15) + 1,1] 95 数据查找 题目:查找第一列的局部最大值位置 难度:⭐⭐⭐⭐ 备注 即比它前一个与后一个数字的都大的数字 R...101 数据读取 题目:从CSV文件中读取指定数据 难度:⭐⭐ 备注 从数据1中的前10行中读取positionName, salary两列 R语言解法 #一步读取文件的指定列用readr包或者原生函数都没办法
在这里使用方括号而不是小括号的目的是为了获得方便的Python切分:可以使用一个单冒号或双冒号,其含义是熟悉的start:stop:step。缺失的 start(end) 就是从系列的开始(到结束)。...从原理上讲,如下图所示: 一般来说,需要保持索引值的唯一性。例如,在索引中存在重复的值时,查询速度的提升并不会提升。...在Pandas中,它被称为MultiIndex(第4部分),索引内的每一列都被称为level。 索引的另一个重要特性是它是不可改变的。与DataFrame中的普通列相比,你不能就地修改它。...索引中的任何变化都涉及到从旧的索引中获取数据,改变它,并将新的数据作为一个新的索引重新连接起来。...下面是插入数值的一种方式和删除数值的两种方式: 第二种删除值的方法(通过删除)比较慢,而且在索引中存在非唯一值的情况下可能会导致复杂的错误。
然后,你可以使用read_clipboard()函数将他们读取至DataFrame中: ? 和read_csv()类似,read_clipboard()会自动检测每一列的正确的数据类型: ?...该Series的nlargest()函数能够轻松地计算出Series中前3个最大值: ? 事实上我们在该Series中需要的是索引: ?...类似地,你可以通过mean()和isna()函数找出每一列中缺失值的百分比。 ? 如果你想要舍弃那些包含了缺失值的列,你可以使用dropna()函数: ?...但是,一个更灵活和有用的方法是定义特定DataFrame中的格式化(style)。 让我们回到stocks这个DataFrame: ? 我们可以创建一个格式化字符串的字典,用于对每一列进行格式化。...Volume列现在有一个渐变的背景色,你可以轻松地识别出大的和小的数值。 最后一个例子: ? 现在,Volumn列上有一个条形图,DataFrame上有一个标题。
df.tail(n) # 查看DataFrame对象的最后n行 df.shape() # 查看行数和列数 df.info() # 查看索引、数据类型和内存信息 df.describe()# 查看数值型列的汇总统计...s.value_counts(dropna=False) # 查看Series对象的唯一值和计数 df.apply(pd.Series.value_counts) # 查看DataFrame对象中每一列的唯一值和计数...df.mean() # 返回所有列的均值 df.corr() # 返回列与列之间的相关系数 df.count() # 返回每一列中的非空值的个数 df.max() # 返回每一列的最大值 df.min...() # 返回每一列的最小值 df.median() # 返回每一列的中位数 df.std() # 返回每一列的标准差 数据合并: df1.append(df2) # 将df2中的行添加到df1的尾部...,列col2的均值 df.pivot_table(index=col1, values=[col2,col3], aggfunc=max) # 创建一个按列col1进行分组,并计算col2和col3的最大值的数据透视表
领取专属 10元无门槛券
手把手带您无忧上云