一、前言 前几天在Python白银交流群【上海新年人】问了一个Pandas数据处理的问题,一起来看看吧。 大佬们,如何把某一列中包含某个值的所在行给删除?比方说把包含电力这两个字的行给删除。...这里【FANG.J】指出:数据不多的话,可以在excel里直接ctrl f,查找“电力”查找全部,然后ctrl a选中所有,右键删除行。...二、实现过程 这里【莫生气】给了一个思路和代码: # 删除Column1中包含'cherry'的行 df = df[~df['Column1'].str.contains('电力')] 经过点拨,顺利地解决了粉丝的问题...后来粉丝增加了难度,问题如下:但如果我同时要想删除包含电力与电梯,这两个关键的,又该怎么办呢? 这里【莫生气】和【FANG.J】继续给出了答案,可以看看上面的这个写法,中间加个&符号即可。...顺利地解决了粉丝的问题。 但是粉丝还有其他更加复杂的需求,其实本质上方法就是上面提及的,如果你想要更多的话,可以考虑下从逻辑 方面进行优化,如果没有的话,正向解决,那就是代码的堆积。
对于一个给定的DataFrame,可以使用 shift() 函数前移(前面的缺失值用NaN补全)或后移(后面的缺失值用NaN补全)来采集定长切片保存至列中。...可以看到,通过前移序列,我们得到了一个原始的监督学习问题( X 和 y 的左右顺序是反的)。忽略行标签,第一列的数据由于存在NaN值应当被丢弃。...可以看到,原本的预测列变为了输入(X),第二列为输出值(y)。再第一行即可以用输入值0预测输出值1.0。...n_out:作为输出的观测值数量(y)。值介于0..len(data)-1之间,可选参数,默认为1。 dropnan:是否删除具有NaN值的行,类型为布尔值。可选参数,默认为True。...除此之外,具有NaN值的行已经从DataFrame中自动删除。 我们可以指定任意长度的输入序列(如3)来重复这个例子。
选择特定的列 3.读取DataFrame的一部分行 read_csv函数允许按行读取DataFrame的一部分。有两种选择。第一个是读取前n行。...8.删除缺失值 处理缺失值的另一种方法是删除它们。“已退出”列中仍缺少值。以下代码将删除缺少任何值的行。...df.dropna(axis=0, how='any', inplace=True) axis = 1用于删除缺少值的列。我们还可以为列或行具有的非缺失值的数量设置阈值。...第一个参数是位置的索引,第二个参数是列的名称,第三个参数是值。 19.where函数 它用于根据条件替换行或列中的值。默认替换值是NaN,但我们也可以指定要替换的值。...method参数指定如何处理具有相同值的行。first表示根据它们在数组(即列)中的顺序对其进行排名。 21.列中唯一值的数量 使用分类变量时,它很方便。我们可能需要检查唯一类别的数量。
dropna() 删除NaN 值 可以通过 dropna 方法,默认按行扫描(操作),会将每一行有NaN 值的那一行删除,同时默认是对原对象的副本操作,不会对原对象产生影响,也可以通过inplace 指示是否直接在原对象上操作...32 33 NaN """ dropna 方法可以选择删除 # 要删除一列或一行中全部都是nan 值的那一行或列,可以通过下面的方式 print("del cols is all NaN\n"...axis = 1, thresh = 2)) # axis=1按列操作,thresh 指示这一列或行中有两个或以上的非NaN 值的行或列被保留 通过布尔判断,也是可以实现删除 NaN 的功能。...复杂的 使用向前 或 向后 填充数据,依旧使用fillna 方法,所谓向前 是指 取出现NaN值的前一列或前一行的数据来填充NaN值,向后同理 # 在df 的e 这一列上操作,默认下按行操作,向前填充数据...下的值为NaN concat 函数 同样的可以指定是按行操作还是按列操作。
Pandas 排序方法入门 快速提醒一下,DataFrame是一种数据结构,行和列都带有标记的轴。您可以按行或列值以及行或列索引对 DataFrame 进行排序。...熟悉 .sort_values() 您用于.sort_values()沿任一轴(列或行)对 DataFrame 中的值进行排序。...与 using 的不同之处.sort_values()在于您是根据其行索引或列名称对 DataFrame 进行排序,而不是根据这些行或列中的值: DataFrame 的行索引在上图中以蓝色标出。...在这个例子中,您排列数据帧由make,model和city08列,与前两列按照升序排序和city08按降序排列。...city08像第一个示例一样按列的值对 DataFrame 进行排序,但inplace设置为True: >>> >>> df.sort_values("city08", inplace=True) 请注意调用如何
Pandas 排序方法入门 快速提醒一下,DataFrame是一种数据结构,行和列都带有标记的轴。您可以按行或列值以及行或列索引对 DataFrame 进行排序。...熟悉 .sort_values() 您用于.sort_values()沿任一轴(列或行)对 DataFrame 中的值进行排序。...与 using 的不同之处.sort_values()在于您是根据其行索引或列名称对 DataFrame 进行排序,而不是根据这些行或列中的值: DataFrame 的行索引在上图中以蓝色标出。...在这个例子中,您排列数据帧由make,model和city08列,与前两列按照升序排序和city08按降序排列。...city08像第一个示例一样按列的值对 DataFrame 进行排序,但inplace设置为True: >>> >>> df.sort_values("city08", inplace=True) 请注意调用如何
#输出后五条数据,DateFrame类型的带有标签的数据 print("获取到所有的值:\n{0}".format(pd1))#格式化输出所有数据 print(pd1.values) #输出的是全部值的一个二维的...输出第一行的值 print(pd1.values[0:2])#查看第一二行的值,返回的是一个二维的ndarray print(pd1[0:3]) #返回的是DateFrame类型的前三列数据,带有标签...print(pd1[0:3].values) #返回的是ndarray类型的前三列数据的值,不带表头标签 print(pd1.sample(2).values) #获取指定行数的值,它是一个二维的ndarray...=0,inplace=True) #删除指定行 axis=0 表示行,inplace=True表示在原有的数据上改变 pd1.drop('job',axis=1,inplace=True)#删除指定列..."))#删除有空值的列 print(df.dropna(axis=1,how="all"))#删除掉全是空值的列 print(df.dropna(axis=0,how="all"))#删除掉全是空值的行
也要注意Python如何为数组选择浮点数(或向上转型)。 ? 并不是所有使用NaN的算数运算的结果是NaN。 ? 对比上面单元格中的Python程序,使用SAS计算数组元素的平均值如下。...默认情况下,.dropna()方法删除其中找到任何空值的整个行或列。 ? ? .dropna()方法也适用于列轴。axis = 1和axis = "columns"是等价的。 ? ?...显然,这会丢弃大量的“好”数据。thresh参数允许您指定要为行或列保留的最小非空值。在这种情况下,行"d"被删除,因为它只包含3个非空值。 ? ? 可以插入或替换缺失值,而不是删除行和列。....PROC MI在这些示例的范围之外。 .fillna(method="ffill")是一种“前向”填充方法。 NaN被上面的“下”列替换为相邻单元格。...在删除缺失行之前,计算在事故DataFrame中丢失的记录部分,创建于上面的df。 ? DataFrame中的24个记录将被删除。
默认情况下,dropna()将删除包含空值的所有行: df.dropna() 0 1 2 1 2.0 3.0 5 或者,你可以沿不同的轴删除 NA 值; axis = 1删除包含空值的所有列: df.dropna...(axis='columns') 2 0 2 1 5 2 6 但这也会丢掉一些好的数据; 你可能更愿意删除全部为 NA 值或大多数为 NA 值的行或列。...这可以通过how或thresh参数来指定,这些参数能够精确控制允许通过的空值数量。 默认值是how ='any',这样任何包含空值的行或列(取决于axis关键字)都将被删除。...你也可以指定how ='all',它只会丢弃全部为空值的行/列: df[3] = np.nan df 0 1 2 3 0 1.0 NaN 2 NaN 1 2.0 3.0 5 NaN 2 NaN 4.0...参数允许你为要保留的行/列指定最小数量的非空值: df.dropna(axis='rows', thresh=3) 0 1 2 3 1 2.0 3.0 5 NaN 这里删除了第一行和最后一行,因为它们只包含两个非空值
本文讲解了如何在Keras深度学习库中,为多变量时间序列预测开发LSTM模型。...看数据表可知,第一个24小时里,PM2.5这一列有很多空值。 因此,我们把第一个24小时里的数据行删掉。 剩余的数据里面也有少部分空值,为了保持数据完整性和连续性,只要将空值填补为0即可。...下面的脚本处理顺序: 加载原始数据集; 将日期时间合并解析为Pandas DataFrame索引; 删除No(序号)列,给剩下的列重新命名字段; 替换空值为0,删除第一个24小时数据行。...'].fillna(0, inplace=True) # 删除前24小时行 dataset = dataset[24:] # 打印前5行 print(dataset.head(5)) # 保存数据到pollution.csv...()) 运行代码,打印出前5行已转换的数据集。
常用数据类型 Series 一维,带标签数组 DataFrame 二维,Series容器 取值 取行: (1)df[:20] 前20行 (2)df[:20]['列索引名'] 取指定列对应的前...缺值处理 pd.isnull(t) 返回的数组中NaN为True,否则为False pd.notnull(t) 返回的数组中NaN为False,否则为True t.dropna(axis=0) 删除包含...NaN的行 t.dropna(axis=0, how='all', inplace=True) how的值为all时,某行全为NaN时才删除,为any时存在NaN则删除整行 inplace为True时,...'].mean()) 只将指定索引对应的列中NaN对应的值进行填充均值 合并 join() 按行合并 df1.join(df2) merge()按列合并 df1.merge(df2, on='操作的列名...', how='inner')内连接(默认) 交集 df1.merge(df2, on='a')方法会将df1中a列的值和df2中a列的值进行比较,然后将相等的值对应的整行进行合并,而且返回的结果中只包含具有可以合并的行
,':'冒号代表从这个位置起后的所有元素被获取 print(t1[0,:]) # [0 1 2 3 4 5] # t1中括号里的参数可以理解为行的索引为0,取第一行;’,’ 后面是取的列数,不写默认索引为...整体理解就是取第一行中的所有列 # 取连续的多行数组 print(t1[0:]) # 取连续的多行数组, print(t1[0:2,:]) # 行的索引为0到2,2不取,列取所有 ''' 运行结果:...print (np.delete(a,5)) print ('\n') print ('删除每一行中的第二列:') print (np.delete(a,1,axis = 1)) print ('\n'...下面我们来介绍如何判断数组中的nan的个数: import numpy as np # 创建一个nan和inf a = np.nan b = np.inf print(a,type(a)) # nan...# 循环6次可以取到6列数组,前三行不含有nan;因此需要判断含列是否有nan,含有nan的列才需要替换 # [ 0. 6. 12. 18
稍后我们将使用它来重命名一些缺失的值。 导入库后,我们将csv文件读取到Pandas数据框中。 使用该方法,我们可以轻松看到前几行。...这些是Pandas可以检测到的缺失值。 回到我们的原始数据集,让我们看一下“ ST_NUM”列。 ? 第三列中有一个空单元格。在第七行中,有一个“ NA”值。 显然,这些都是缺失值。...非标准缺失值 有时可能是缺少具有不同格式的值的情况。 让我们看一下“Number of Bedrooms”一栏,了解我的意思。 ? 在此列中,有四个缺失值。...从前面的示例中,我们知道Pandas将检测到第7行中的空单元格为缺失值。让我们用一些代码进行确认。...更换 通常,您必须弄清楚如何处理缺失值。 有时,您只是想删除这些行,而其他时候,您将替换它们。 正如我之前提到的,这不应该掉以轻心。我们将介绍一些基本的推论。
监督学习 正式开始前,我们需要更好地理解时间序列和监督学习的数据形式。时间序列是一组按照时间指数排序的数字序列,可被看成是一列有序的值。...给定一个 DataFrame, shift() 函数可被用来创建数据列的副本,然后 push forward (NaN 值组成的行添加到前面)或者 pull back(NaN 值组成的行添加到末尾)。...可看到,把序列向前 shift 一个时间步,产生了一个原始的监督学习问题,虽然 X 、y 的顺序不对。无视行标签的列。由于 NaN 值,第一行需要被抛弃。...第二行第二列(输入 X)现实输入值是 0.0,第一列的值是 1 (输出 y)。 我们能看到,如果在 shift 2、3 …… 重复该过程,要如何创建能用来预测输出值 y 的长输出序列(X)。...这起到了通过在末尾插入新的行,来拉起观察的作用。下面是例子: 运行该例子显示出,新的一列的最后一个值是一个 NaN 值。可以看到,预测列可被作为输入 X,第二行作为输出值 (y)。
(subset=None,keep='first',inplace=None))#excel文件中设定第一和第二行为重复行,结果删除了第二行保留第一行 ###df_excel.drop_duplicates...默认值为subset=None表示考虑所有列。 #####keep='first'表示保留第一次出现的重复行,是默认值。...#####inplace=True表示直接在原来的DataFrame上删除重复项,而默认值False表示生成一个副本 print('数据集列中是否存在缺失值:\n',df_excel.isnull()...)的行 # #axis=1: 删除包含缺失值(NaN)的列 # # how=‘any' :要有缺失值(NaN)出现删除...# # how=‘all': 所有的值都缺失(NaN)才删除 # 还有一个thresh参数 # thresh=n,保留至少有 n 个非 NaN
监督学习 正式开始前,我们需要更好地理解时间序列和监督学习的数据形式。时间序列是一组按照时间指数排序的数字序列,可被看成是一列有序的值。...给定一个 DataFrame, shift() 函数可被用来创建数据列的副本,然后 push forward (NaN 值组成的行添加到前面)或者 pull back(NaN 值组成的行添加到末尾)。...可看到,把序列向前 shift 一个时间步,产生了一个原始的监督学习问题,虽然 X 、y 的顺序不对。无视行标签的列。由于 NaN 值,第一行需要被抛弃。...第二行第二列(输入 X)现实输入值是 0.0,第一列的值是 1 (输出 y)。 我们能看到,如果在 shift 2、3 ……重复该过程,要如何创建能用来预测输出值 y 的长输出序列(X)。...这起到了通过在末尾插入新的行,来拉起观察的作用。下面是例子: 运行该例子显示出,新的一列的最后一个值是一个 NaN 值。可以看到,预测列可被作为输入 X,第二行作为输出值 (y)。
DataFrame类对象的行索引位于最左侧一列,列索引位于最上面一行,且每个列索引对应着一列数据。DataFrame类对象其实可以视为若干个公用行索引的Series类对象的组合。...index:表示行索引,默认生成0~N的整数索引。 columns:表示列索引,默认生成0~N的整数索引。 dtype:表示数据的类型。...fill_vlaue:表示缺失值的替代值。 limit:表示前向或者后向填充的最大填充量。...变量.at[行索引, 列索引] 变量.iat[行索引, 列索引] 以上方式中,"at[行索引, 列索引]"中的索引必须为自定义的标签索引,"iat[行索引, 列索引]"中的索引必须为自动生成的整数索引...变量[第一层索引] 变量[第一层索引][第二层索引] 以上方式中,使用 变量[第一层索引] 可以访问第一层索引嵌套的第二层索引及其对应的数据; 使用 变量[第一层索引][第二层索引] 可以访问第二层索引对应的数据
数据的质量直接关乎最后数据分析出来的结果,如果数据有错误,在计算和统计后,结果也会有误。 所以在进行数据分析前,我们必须对数据进行清洗。...需要考虑数据是否需要修改、如何修改调整才能适用于之后的计算和分析等。 数据清洗也是一个迭代的过程,实际项目中可能需要不止一次地执行这些清洗操作。...即删除 # how='all' 行或列只要存在就删除 axis=0 按行删除 axis=1 按列删除 # 将内容转为DataFrame 类型 data = pd.DataFrame(data) #...否则数据显示有问题 数据被会names(列标签)占用,可以先读取,获取 行和列,如果没有头标签,再设置names标签 其他参数: 文件读取部分数据 skiprows=2 跳过前2行 skiprows...=[2] 跳过下标为2的那一行 下标从0开始 nrows=2 读取n行 chunksize=2 每次读取的行数 返回可可遍历列表对象 data = pd.read_csv('.
看数据表可知,第一个24小时里,PM2.5这一列有很多空值。因此,我们把第一个24小时里的数据行删掉。剩余的数据里面也有少部分空值,为了保持数据完整性和连续性,只要将空值填补为0即可。...删除No(序号)列,给剩下的列重新命名字段。最后替换空值为0,删除第一个24小时数据行。...'].fillna(0, inplace=True) # 删除前24小时行 dataset = dataset[24:] # 打印前5行 print(dataset.head(5)) # 保存数据到pollution.csv...()) 运行代码,打印出前5行已转换的数据集。...'].fillna(0, inplace=True) # 删除前24小时行 dataset = dataset[24:] # 打印前5行 print(dataset.head(5)) # 保存数据到pollution.csv
如果 索引 被传递, 索引 中的标签对应的数据值将被取出。...index:对于行标签,如果没有索引被传递,则要用于结果帧的索引是可选缺省值np.arrange(n)。 columns:对于列标签,可选的默认语法是 - np.arrange(n)。...: 使用索引标签从DataFrame中删除或删除行。...head() 返回前n行。 tail() 返回最后n行。 ---- DataFrame基本方法 属性或方法 描述 Ť 转置行和列。 axes 以行轴标签和列轴标签作为唯一成员返回列表。...shape 返回表示DataFrame维度的元组。 size NDFrame中的元素数目。 values NDFrame的Numpy表示。 head() 返回前n行。 tail() 返回最后n行。
领取专属 10元无门槛券
手把手带您无忧上云