自定义缺失值的判断和替换 isin(values): 判断Series或DataFrame中是否包含某些值,可以传入一个可迭代对象、Series、DataFrame或字典。...空值判断 isnull(): 判断Series或DataFrame中是否包含空值,与isna()结果相同,与notnull()结果相反。...在实际的应用中,一般不会按列删除,例如数据中的一列表示年龄,不能因为年龄有缺失值而删除所有年龄数据。 how: how参数默认为any,只要一行(或列)数据中有空值就会删除该行(或列)。...将how参数修改为all,则只有一行(或列)数据中全部都是空值才会删除该行(或列)。 thresh: 表示删除空值的界限,传入一个整数。...对于这种情况,需要在填充前人工进行判断,避免选择不适合的填充方式,并在填充完成后,再检查一次数据中是否还有空值。
pandas已经为我们自动检测了数据类型,其中包括83列数值型数据和78列对象型数据。对象型数据列用于字符串或包含混合数据类型的列。...由此我们可以进一步了解我们应该如何减少内存占用,下面我们来看一看pandas如何在内存中存储数据。...每当我们查询、编辑或删除数据时,dataframe类会利用BlockManager类接口将我们的请求转换为函数和方法的调用。...Pandas用一个字典来构建这些整型数据到原数据的映射关系。当一列只包含有限种值时,这种设计是很不错的。...下面我们写一个循环,对每一个object列进行迭代,检查其唯一值是否少于50%,如果是,则转换成类别类型。
面对缺失值三种处理方法: option 1: 去掉含有缺失值的样本(行) option 2:将含有缺失值的列(特征向量)去掉 option 3:将缺失值用某些值填充(0,平均值,中值等) 对于dropna..., subset=None, inplace=False) 参数说明: axis: axis=0: 删除包含缺失值的行 axis=1: 删除包含缺失值的列 how: 与axis配合使用 how=‘...any’ :只要有缺失值出现,就删除该行货列 how=‘all’: 所有的值都缺失,才删除行或列 thresh: axis中至少有thresh个非缺失值,否则删除 比如 axis=0,thresh=10...:标识如果该行中非缺失值的数量小于10,将删除改行 subset: list 在哪些列中查看是否有缺失值 inplace: 是否在原数据上操作。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
apply方法是对DataFram中的每一行或者每一列进行映射。 ?...image.png 5.5 排序和排名 使用DataFrame对象的sort_valuse方法,需要两个参数:第1个参数by是根据哪一行或列排序; 第2个参数axis为0或1,默认为0,0为按列排序,...这个方法有2个参数: 关键字参数how,可以填入的值为any或all,any表示只要有1个空值则删除该行或该列,all表示要一行全为空值则删除该行。...经过第6步之后,为什么原来的dataframe数据中Mjob和Fjob列的数据仍然是小写的?...Python中的字符串处理 对于大部分应用来说,python中的字符串应该已经足够。 如split()函数对字符串拆分,strip()函数对字符串去除两边空白字符。
注意到当我们提取了一列,Pandas将返回一个series,而不是一个dataframe。是否还记得,你可以将dataframe视作series的字典。...它将会返回该行的一个series。在返回的series中,这一行的每一列都是一个独立的元素。 可能在你的数据集里有年份的列,或者年代的列,并且你希望可以用这些年份或年代来索引某些行。...这样,我们可以设置一个(或多个)新的索引。 ? 这将会给’water_year’一个新的索引值。注意到列名虽然只有一个元素,却实际上需要包含于一个列表中。...对数据集应用函数 有时候你会想以某些方式改变或是操作你数据集中的数据。例如,如果你有一列年份的数据而你希望创建一个新的列显示这些年份所对应的年代。...这个pivot创造了许多空的或值为NaN的条目。我个人觉得我的dataframe被乱七八糟的NaN分散了注意力,所以使用了fillna(‘’)将他们变成了空字符串。
pandas-cheat-sheet.pdf 关键缩写和包导入 在这个速查手册中,我们使用如下缩写: df:任意的Pandas DataFrame对象 同时我们需要做如下的引入: import pandas...():检查DataFrame对象中的空值,并返回一个Boolean数组 pd.notnull():检查DataFrame对象中的非空值,并返回一个Boolean数组 df.dropna():删除所有包含空值的行...):返回按列col1分组的所有列的均值 data.apply(np.mean):对DataFrame中的每一列应用函数np.mean data.apply(np.max,axis=1):对DataFrame...中的每一行应用函数np.max 数据合并 df1.append(df2):将df2中的行添加到df1的尾部 df.concat([df1, df2],axis=1):将df2中的列添加到df1的尾部 df1...df.corr():返回列与列之间的相关系数 df.count():返回每一列中的非空值的个数 df.max():返回每一列的最大值 df.min():返回每一列的最小值 df.median():返回每一列的中位数
最后,需要 Python(re)的正则表达式库来更改在处理数据时将出现的某些字符串。...在 Python 中,不需要知道很多关于正则表达式的知识,但它们是一个强大的工具,可用于匹配和替换某些字符串或子字符串。如果你想了解更多,请参考以下教程。 ? 信任这个网站的一些代码。...有关数据结构,如列表和词典,如何在 Python 中的运行的更多信息,本教程将有所帮助。...我们将要重命名某些列,在 Excel 中,可以通过单击列名称并键入新名称,在SQL中,你可以执行 ALTER TABLE 语句或使用 SQL Server 中的 sp_rename。...现在我们完成了,我们可以快速看看,添加了几个可以操作的列,包括不同年份的数据来源。 现在我们来合并数据: ? 我们现在可以看到,这个表格包含了人均 GDP 列和具有不同列的遍及全国的数据。
最后,需要 Python(re)的正则表达式库来更改在处理数据时将出现的某些字符串。...在 Python 中,不需要知道很多关于正则表达式的知识,但它们是一个强大的工具,可用于匹配和替换某些字符串或子字符串。如果你想了解更多,请参考以下内容。 ?...有关数据结构,如列表和词典,如何在 Python 中的运行的更多信息,本篇将有所帮助。...我们将要重命名某些列,在 Excel 中,可以通过单击列名称并键入新名称,在SQL中,你可以执行 ALTER TABLE 语句或使用 SQL Server 中的 sp_rename。...现在我们完成了,我们可以快速看看,添加了几个可以操作的列,包括不同年份的数据来源。 现在我们来合并数据: ? 我们现在可以看到,这个表格包含了人均 GDP 列和具有不同列的遍及全国的数据。
函数方法 用法释义 cat 字符串的拼接 contains 判断某个字符串是否包含给定字符 startswith/endswith 判断某个字符串是否以...开头/结尾 get 获取指定位置的字符串 len...计算字符串长度 upper、lower 英文大小写转换 pad/center 在字符串的左边、右边或左右两边添加给定字符 repeat 重复字符串几次 slice_replace 使用给定的字符串,替换指定的位置的字符...split 分割字符串,将一列扩展为多列 strip、rstrip、lstrip 去除空白符、换行符 findall 利用正则表达式,去字符串中匹配,返回查找结果的列表 extract、extractall...如果想直接筛选包含特定字符的字符串,可以使用contains()这个方法。 例如,筛选户籍地址列中包含“黑龙江”这个字符的所有行。...df.query("语文 > 英语") 输出: select_dtypes()方法可用于筛选某些数据类型的变量或列。举例,我们仅选择具有数据类型'int64'的列。
我们选择一个ID,一个维度和一个包含值的列/列。包含值的列将转换为两列:一列用于变量(值列的名称),另一列用于值(变量中包含的数字)。 ?...诸如字符串或数字之类的非列表项不受影响,空列表是NaN值(您可以使用.dropna()清除它们 )。 ? 在DataFrame df中Explode列“ A ” 非常简单: ?...Stack 堆叠采用任意大小的DataFrame,并将列“堆叠”为现有索引的子索引。因此,所得的DataFrame仅具有一列和两级索引。 ? 堆叠名为df的表就像df.stack()一样简单 。...请注意,concat是pandas函数,而不是DataFrame之一。因此,它接受要连接的DataFrame列表。 如果一个DataFrame的另一列未包含,默认情况下将包含该列,缺失值列为NaN。...为了防止这种情况,请添加一个附加参数join ='inner',该参数 只会串联两个DataFrame共有的列。 ? 切记:在列表和字符串中,可以串联其他项。
、$、%、^,等等,因为特殊字符不会告诉任何有关数据的信息。 数据在某些列中可能缺少值。确保使用NA或完整列的平均值或中位数来填充它们。...检查pip或pip3命令是否以符号方式链接到Python3,使用计划在本文中使用的当前版本的Python(>=3.4)。...通过这种方式,可以将包含数据的工作表添加到现有工作簿中,该工作簿中可能有许多工作表:可以使用ExcelWriter将多个不同的数据框架保存到一个包含多个工作表的工作簿中。...可以在下面看到它的工作原理: 图15 已经为在特定列中具有值的行检索了值,但是如果要打印文件的行而不只是关注一列,需要做什么? 当然,可以使用另一个for循环。...另一个for循环,每行遍历工作表中的所有列;为该行中的每一列填写一个值。
其中一列是我们感兴趣并能够预测的信息,通常称其为目标变量或者因变量,在分类问题中称为标签、类。在我们的案例中,目标变量是房价。其它的列通常称为独立变量或特征。...我们之后将频繁使用 read_csv,因此建议先浏览它的文档(这是一个好习惯)。加载数据并查看 DataFrame,可以发现数据集中的第一列是 Id,代表数据集中该行的索引,而不是真实观察值。...因此,我修改了代码,加上 index_col=『Id』作为参数,从而在加载数据到 DataFrame 的时候,确保 Pandas 将其作为索引而不是列,并在它之前添加一个新的索引列。...该列被分为 n 个列,每一列对应一个原始值(相当于对每个原始值的『is_value?』)。每个观察值(以前有一个分类变量的字符串值),现在在旧字符串值对应的列上有一个 1,而其他所有列上为 0。...随后,我在训练集和测试集中添加了一个新的临时列('training_set'),以便我们可以将它们连接在一起(将它们放在同一个 DataFrame 中),然后再将它们分开。
) in ['COL3', 'COL1']) 返回序列 squeeze 如果文件值包含一列,则返回一个 Series,如果多个列无论如何还是 DataFrame。...NaN pd.read_csv(data, na_values={'c':3, 1:[2,5]}) 保留默认空值 keep_default_na 分析数据时是否包含默认的NaN值,是否自动识别。...# boolean, default True # 不自动识别空值 pd.read_csv(data, keep_default_na=False) 丢失值检查 na_filter 是否检查丢失值(空字符串或者是空值...# boolean, default True pd.read_csv(data, na_filter=False) # 不检查 解析信息 verbose 是否打印各种解析器的输出信息,例如:“非数值列中缺失值的数量...zip”或“ .xz”结尾的字符串,则使用gzip,bz2,zip或xz,否则不进行解压缩。 如果使用“ zip”,则ZIP文件必须仅包含一个要读取的数据文件。设置为“None”将不进行解压缩。
好多数据集都含缺失数据,缺失数据有多重表现形式 数据库中,缺失数据表示为NULL 在某些编程语言中用NA表示 缺失值也可能是空字符串(’’)或数值 在Pandas中使用NaN表示缺失值; NaN简介 Pandas..., 默认是判断缺失值的时候会考虑所有列, 传入了subset只会考虑subset中传入的列 how any 只要有缺失就删除 all 只有整行/整列数据所有的都是缺失值才会删除 inplace 是否在原始数据中删除缺失值.../3 df.apply(avg_3_apply) 按一列一列执行结果:(一共两列,所以显示两行结果) 创建一个新的列'new_column',其值为'column1'中每个元素的两倍,当原来的元素大于...'new_column'] =df['column1'].apply(lambda x:x*2) # 检查'column1'中的每个元素是否大于10,如果是,则将新列'new_column'中的值赋为...row['new_column'] 请创建一个两列的DataFrame数据,自定义一个lambda函数用来两列之和,并将最终的结果添加到新的列'sum_columns'当中 import pandas
isna()部分检测dataframe中缺少的值,并为dataframe中的每个元素返回一个布尔值。sum()部分对真值的数目求和。...其他列(如WELL、DEPTH_MD和GR)是完整的,并且具有最大的值数。 矩阵图 如果使用深度相关数据或时间序列数据,矩阵图是一个很好的工具。它为每一列提供颜色填充。...当一行的每列中都有一个值时,该行将位于最右边的位置。当该行中缺少的值开始增加时,该行将向左移动。 热图 热图用于确定不同列之间的零度相关性。换言之,它可以用来标识每一列之间是否存在空值关系。...接近正1的值表示一列中存在空值与另一列中存在空值相关。 接近负1的值表示一列中存在空值与另一列中存在空值是反相关的。换句话说,当一列中存在空值时,另一列中存在数据值,反之亦然。...如果在零级将多个列组合在一起,则其中一列中是否存在空值与其他列中是否存在空值直接相关。树中的列越分离,列之间关联null值的可能性就越小。
五、查询数据集 现在我们已经了解了如何根据索引访问大型数据集的子集。现在,我们继续基于数据集列中的值选择行以查询数据。例如,我们可以创建一个DataFrame仅包含2010年之后打过的比赛。...仅包含其中列中的值"year_id"大于的行2010。...接下来要说的是如何在数据分析过程的不同阶段中操作数据集的列。...我们可以在初始数据清理阶段添加列或删除列,也可以稍后基于分析的见解来添加和删除列。...这些object列中的大多数包含任意文本,但是也有一些数据类型转换的候选对象。
字符串)、字节流对象、URL、ExcelFile对象或类似对象(如xlrd、openpyxl或pyxlsb)。...ps:read_excel方法返回的结果是DataFrame, DataFrame的一列对应着Excel的一列。...squeeze(可选,默认为False):用于指定是否将只有一列的数据读取为Series对象而不是DataFrame对象。 prefix(可选,默认为None):用于给列名添加前缀。...注意事项: 读取的JSON文件必须存在并且格式正确,否则函数将会抛出异常。 JSON文件可以包含不同类型的数据,如字符串、数字、布尔值、列表、字典等。...返回值: 如果HTML文件中只有一个表格,则返回一个DataFrame对象。 如果HTML文件中有多个表格,则返回一个包含所有表格的列表,每个表格都以DataFrame对象的形式存储在列表中。
以下函数很常用:duplicated: 识别DataFrame中是否有重复,可以指定使用哪些列来标识重复项。drop_duplicates:从 DataFrame 中删除重复项。...isnull:检查您的 DataFrame 是否缺失。dropna: 对数据做删除处理。注意它有很重要的参数how(如何确定观察是否被丢弃)和 thred(int类型,保留缺失值的数量)。...图片 7.数据处理一个字段可能包含很多信息,我们可以使用以下函数对字段进行数据处理和信息抽取:map:通常使用map对字段进行映射操作(基于一些操作函数),如 df[“sub_id”] = df[“temp_id...重要的参数包括 on(连接字段),how(例如内连接或左连接,或外连接),以及 suffixes(相同字段合并后的后缀)。concat:沿行或列拼接DataFrame对象。...图片 10.分组统计我们经常会需要对数据集进行分组统计操作,常用的函数包括:groupby:创建一个 GroupBy 分组对象,可以基于一列或多列进行分组。
(或者在linux系统中,你可以使用‘head’来展示任意文本文件的前五行:head -c 5 data.txt) 接下来,用 df.columns.tolist() 可以提取每一列并转换成list。...另外,如果你知道某些列的类型,你可以加上dtype = {‘c1’: str, ‘c2’: int, …} ,这样会加快载入的速度。...加入这些参数的另一大好处是,如果这一列中同时含有字符串和数值类型,而你提前声明把这一列看作是字符串,那么这一列作为主键来融合多个表时,就不会报错了。...比如说,如果你想把“c”列的值近似取整,那么请用round(df[‘c’], 0)或df['c'],round(0)而不是上文的apply函数。...另一个技巧是用来处理整数值和缺失值混淆在一起的情况。如果一列含有缺失值和整数值,那么这一列的数据类型会变成float而不是int。
(或者在linux系统中,你可以使用‘head’来展示任意文本文件的前五行:head -c 5 data.txt) 接下来,用 df.columns.tolist() 可以提取每一列并转换成list。...另外,如果你知道某些列的类型,你可以加上dtype = {‘c1’: str, ‘c2’: int, …} ,这样会加快载入的速度。...加入这些参数的另一大好处是,如果这一列中同时含有字符串和数值类型,而你提前声明把这一列看作是字符串,那么这一列作为主键来融合多个表时,就不会报错了。...比如说,如果你想把“c”列的值近似取整,那么请用round(df[‘c’], 0)或df[ c ],round(0)而不是上文的apply函数。...另一个技巧是用来处理整数值和缺失值混淆在一起的情况。如果一列含有缺失值和整数值,那么这一列的数据类型会变成float而不是int。
领取专属 10元无门槛券
手把手带您无忧上云