pandas.DataFrame删除/选取含有特定数值的行或列实例

1.删除/选取某列含有特殊数值的行

import pandas as pd
import numpy as np

a=np.array([[1,2,3],[4,5,6],[7,8,9]])
df1=pd.DataFrame(a,index=['row0','row1','row2'],columns=list('ABC'))
print(df1)
df2=df1.copy()

#删除/选取某列含有特定数值的行
#df1=df1[df1['A'].isin([1])]
#df1[df1['A'].isin([1])] 选取df1中A列包含数字1的行

df1=df1[~df1['A'].isin([1])]
#通过~取反,选取不包含数字1的行
print(df1)

运行结果:

2.删除/选取某行含有特殊数值的列

#删除/选取某行含有特定数值的列
cols=[x for i,x in enumerate(df2.columns) if df2.iat[0,i]==3]
#利用enumerate对row0进行遍历,将含有数字3的列放入cols中
print(cols)

#df2=df2[cols]  选取含有特定数值的列
df2=df2.drop(cols,axis=1) #利用drop方法将含有特定数值的列删除
print(df2)

运行结果:

3.删除含有空值的行或列

实现思路:利用pandas.DateFrame.fillna对空值赋予特定值,再利用上文介绍的方法找到这些含有特定值的行或列去除即可。

import pandas as pd
import numpy as np

df1 = pd.DataFrame(
  [
    [np.nan, 2, np.nan, 0],
    [3, 4, np.nan, 1],
    [np.nan, np.nan, np.nan, 5],
    [np.nan, 3, np.nan, 4]
  ],columns=list('ABCD'))
print(df1)
df2=df1.copy()

df1['A']=df1['A'].fillna('null') #将df中A列所有空值赋值为'null'
print(df1)
df1=df1[~df1['A'].isin(['null'])]
print(df1)

#删除某行空值所在列

df2[0:1]=df2[0:1].fillna('null')
print(df2)
cols=[x for i,x in enumerate(df2.columns) if df2.iat[0,i]=='null']
print(cols)
df2=df2.drop(cols,axis=1)
print(df2)

运行结果:

以上这篇pandas.DataFrame删除/选取含有特定数值的行或列实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python中pandas.DataFrame对行与列求和及添加新行与列示例

    本文介绍的是python中pandas.DataFrame对行与列求和及添加新行与列的相关资料,下面话不多说,来看看详细的介绍吧. 方法如下: 导入模块: from pandas import DataFrame import pandas as pd import numpy as np 生成DataFrame数据 df = DataFrame(np.random.randn(4, 5), columns=['A', 'B', 'C', 'D', 'E']) DataFrame数据预览: A

  • pandas删除行删除列增加行增加列的实现

    创建df: >>> df = pd.DataFrame(np.arange(16).reshape(4, 4), columns=list('ABCD'), index=list('1234')) >>> df A B C D 1 0 1 2 3 2 4 5 6 7 3 8 9 10 11 4 12 13 14 15 1,删除行 1.1,drop 通过行名称删除: df = df.drop(['1', '2']) # 不指定axis默认为0 df.drop(['1',

  • Python中pandas dataframe删除一行或一列:drop函数详解

    用法:DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False) 在这里默认:axis=0,指删除index,因此删除columns时要指定axis=1: inplace=False,默认该删除操作不改变原数据,而是返回一个执行删除操作后的新dataframe: inplace=True,则会直接在原数据上进行删除操作,删除后就回不来了. 例子: >>>df = pd.DataFrame(np.a

  • pandas.DataFrame删除/选取含有特定数值的行或列实例

    1.删除/选取某列含有特殊数值的行 import pandas as pd import numpy as np a=np.array([[1,2,3],[4,5,6],[7,8,9]]) df1=pd.DataFrame(a,index=['row0','row1','row2'],columns=list('ABC')) print(df1) df2=df1.copy() #删除/选取某列含有特定数值的行 #df1=df1[df1['A'].isin([1])] #df1[df1['A'].

  • Pandas.DataFrame删除指定行和列(drop)的实现

    目录 DataFrame指定的行删除 按行名指定(行标签) 按行号指定 未设置行名的注意事项 DataFrame指定的列删除 按列名指定(列标签) 按列号指定 多行多列的删除 使用drop()方法删除pandas.DataFrame的行和列. 在0.21.0版之前,请使用参数labels和axis指定行和列.从0.21.0开始,可以使用index或columns. 在此,将对以下内容进行说明. DataFrame指定的行删除 按行名指定(行标签) 按行号指定 未设置行名的注意事项 DataFra

  • pandas DataFrame 数据选取,修改,切片的实现

    在刚开始使用pandas DataFrame的时候,对于数据的选取,修改和切片经常困惑,这里总结了一些常用的操作. pandas主要提供了三种属性用来选取行/列数据: 属性名 属性 ix 根据整数索引或者行标签选取数据 iloc 根据位置的整数索引选取数据 loc 根据行标签选取数据 先初始化一个DateFrame做例子 import numpy as np import pandas as pd df = pd.DataFrame([['Snow','M',22],['Tyrion','M',

  • pandas DataFrame 删除重复的行的实现方法

    1. 建立一个DataFrame C=pd.DataFrame({'a':['dog']*3+['fish']*3+['dog'],'b':[10,10,12,12,14,14,10]}) 2. 判断是否有重复项 用duplicated( )函数判断 C.duplicated() 3.  有重复项,则可以用drop_duplicates()移除重复项 C.drop_duplicates() 4. Duplicated( )和drop_duplicates( )方法是以默认的方式判断全部的列(上面

  • 使用批处理删除HOSTS中特定内容的行的代码

    Q:用bat批处理来删除或者修改hosts中指定的条目,例如对于127.0.0.1 localhosts,能否把hosts里面带有local的记录全都删掉或者改掉? A: 复制代码 代码如下: cd /d %windir%\system32\drivers\etc  rem 先删除hosts.bak防止重命名失败  del hosts.bak  ren hosts hosts.bak  for /f "eol=# tokens=1,2" %%i in (hosts.bak) do ca

  • R语言 如何保留大于或小于特定数值的行

    如下所示: newdata<-subset(x, x$var > 某一数字) x为矩阵 var是其中的一个变量 补充:r语言 循环次数超过了50这个最大值_错过了520还可以一起过儿童节,如何用R语言'撸'一个文字跑马灯去表白... 引言 和大家分享一下如何用R语言来写一个文字跑马灯吧.这个文字跑马灯写起来基本不费时间,在办公室摸一下鱼大概就够了. 正文 这个文字跑马灯我准备按照面向对象编程来写.因为,面向对象就会有对象.而且,这个东西写出来就是拿给你们去表白的. 首先我们定义一个基类,这个基

  • pandas.DataFrame Series排序的使用(sort_values,sort_index)

    目录 按元素排序sort_values() 升序,降序(参数ascending) 多列排序 缺失值NaN的处理(参数na_position) 更改原始对象(参数inplace) 按行方向排序(参数axis) 按索引排序(行名/列名)sort_index() 按行名索引排序 升序,降序(参数ascending) 更改原始对象(参数inplace) 按列名列排序(参数axis) 要对pandas.DataFrame和pandas.Series进行排序,可以使用sort_values()和sort_i

  • pandas DataFrame 行列索引及值的获取的方法

    pandas DataFrame是二维的,所以,它既有列索引,又有行索引 上一篇里只介绍了列索引: import pandas as pd df = pd.DataFrame({'A': [0, 1, 2], 'B': [3, 4, 5]}) print df # 结果: A B 0 0 3 1 1 4 2 2 5 行索引自动生成了 0,1,2 如果要自己指定行索引和列索引,可以使用 index 和 column 参数: 这个数据是5个车站10天内的客流数据: ridership_df = pd

  • python提取具有某种特定字符串的行数据方法

    今天又帮女朋友处理了一下,她的实验数据,因为python是一年前经常用,最近找工作,用的是c,c++,python的有些东西忘记了,然后就一直催我,说我弄的慢,弄的慢,你自己弄啊,烦不烦啊,逼逼叨叨的,最后还不是我给弄好的?呵呵 好的,数据是这样的,我截个图 我用红括号括起来的,就是我所要提取的数据 其中lossstotal.txt是我要提取的原始数据,考虑两种方法去提取,前期以为所要提取行的数据是有一定规律的,后来发现,并不是,所以,我考虑用正则来提取,经过思考以后,完成了数据的提取,如下午所

随机推荐