精华内容
下载资源
问答
  • pandas删除指定列中有空值的行

    万次阅读 多人点赞 2019-04-15 19:28:51
    mydf.dropna(subset=['列名'],inplace=True) subset参数指定列,inplace参数为修改原dataframe,这行代码也可以写成酱紫 mydf=mydf.dropna(subset=['列名'])
    mydf.dropna(subset=['列名'],inplace=True)

    subset参数指定列,inplace参数为修改原dataframe,这行代码也可以写成酱紫

    mydf=mydf.dropna(subset=['列名'])

     

    展开全文
  • Pandas 删除指定列中为NaN的行

    千次阅读 2019-01-04 14:48:00
    需求:删除指定列中NaN所在行。 如下图,’open‘ 列中有一行为NaN,定位到它,然后删除。 定位: df[np.isnan(df['open'])].index # 这样即可定位到所在行的index,然后对该index进行drop操作即可 删除...

    定位要删除的行

    需求:删除指定列中NaN所在行。

    如下图,’open‘ 列中有一行为NaN,定位到它,然后删除。

    定位:

    df[np.isnan(df['open'])].index
    # 这样即可定位到所在行的index,然后对该index进行drop操作即可

    删除行

    df.drop(df[np.isnan(df['open'])].index, inplace=True)
    
    # 直接drop对应indx即可删除该行

     

    转载于:https://www.cnblogs.com/bigtreei/p/10219816.html

    展开全文
  • 使用pandas处理数据时,如何实现删除/选取某含有特殊数值的行或者某行含有特殊数值的,以及如何去除含有空值的行或
  • pandas删除指定行详解

    2020-09-19 11:54:43
    主要介绍了pandas删除指定行的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Python pandas 删除指定行/数据

    万次阅读 2021-03-16 17:31:56
    滤除缺失数据dropna()1)滤除含有NaN值的所有行2)滤除含有NaN值的所有列3)滤除元素都是NaN值的行4)滤除元素都是NaN值的列5)滤除指定列中含有缺失的行2.删除重复值 drop_duplicates()3.根据指定条件删除行列drop() 1....

    1.滤除缺失数据dropna()

    import pandas as pd
    import numpy as np
    df=pd.DataFrame({"record":[np.nan,"亚健康|潘光|45岁","疾病|张思",np.nan],"date":[np.nan,20210102,20210103,20210104]},index=["one","two","three","four"])
    

    在这里插入图片描述

    1)滤除含有NaN值的所有行

    df.dropna()#默认axis=0
    

    在这里插入图片描述

    2)滤除含有NaN值的所有列

    df.dropna(axis=1)
    

    在这里插入图片描述

    3)滤除元素都是NaN值的行

    df.dropna(axis=0,how="all")
    

    在这里插入图片描述

    4)滤除元素都是NaN值的列

    在这里插入图片描述

    5)滤除指定列中含有缺失的行

    df.dropna(subset=["record"],axis=0)
    

    在这里插入图片描述
    以上如果需要在原数据上直接做更改,需设置参数inplace=True

    2.删除重复值 drop_duplicates()

    df=pd.DataFrame({'state':[1,1,2,2,1,2,2],'pop':['a','b','c','d','b','c','d']})
    

    在这里插入图片描述

    语法:drop_duplicates(subset,keep,inplace),其中参数 keep:{‘first’,‘last’,False},默认’first’

    • first:保留第一次出现的重复项,删除第二次及之后出现的重复项。

    • last:保留最后一次出现的重复项,删除之前出现的重复项。

    • "false":删除所有重复项。

    1)keep=“first”

    df.drop_duplicates(keep="first")
    

    在这里插入图片描述

    2)keep=“last”

    df.drop_duplicates(keep="last")
    

    在这里插入图片描述

    3)keep=False

    df.drop_duplicates(keep=False)
    

    在这里插入图片描述
    4)删除指定列中重复项对应的行

    df.drop_duplicates(subset=["state"],keep="first")
    

    在这里插入图片描述
    以上如果需要在原数据上直接做更改,需设置参数inplace=True

    3.根据指定条件删除行列drop()

    df=pd.DataFrame(np.arange(16).reshape(4,4),columns=["one","two","three","four"])
    

    在这里插入图片描述
    1).删除指定列

    df.drop(["one"],axis=1)
    

    在这里插入图片描述
    另外,也可通过del df["one"]来实现删除指定列,但该方法不推荐,因为这默认直接在源数据上做更改。

    2).删除指定行

    df.drop([0],axis=0)
    

    在这里插入图片描述
    以上如果需要在原数据上直接做更改,需设置参数inplace=True

    展开全文
  • pandas删除某些、行总结

    千次阅读 2019-07-26 11:39:46
    创建df: >>> df = pd.DataFrame(np.arange(16).reshape(4, 4), columns...df = df.reindex(columns=list('ABCDEFG'), fill_value=0) # 的次序按照list指定,并且fill_value只对新增做出调整,  

    创建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', '3'], inplace=True)

    通过行号删除:

    df.drop(df.index[0], inplace=True)       # 删除第1行
    df.drop(df.index[0:3], inplace=True)     # 删除前3行
    df.drop(df.index[[0, 2]], inplace=True)  # 删除第1第3行

    1.2,通过各种筛选方法实现删除行

    举例,通过筛选可以实现很多功能,例如要对某行数据去重,可以获取去重后的index列表后,使用loc方法:

    >>> df.loc['2','B']=9
    >>> df
    
        A   B   C   D
    
    1   0   1   2   3
    
    2   4   9   6   7
    
    3   8   9  10  11
    
    4  12  13  14  15
    
    >>> chooses = df['B'].drop_duplicates().index
    >>> df.loc[chooses]
    
        A   B   C   D
    
    1   0   1   2   3
    
    2   4   9   6   7
    
    4  12  13  14  15

    2,删除列

    2.1,del

    del df['A']  # 删除A列,会就地修改

    2.2,drop

    通过列名称删除:

    df = df.drop(['B', 'C'], axis=1)               # drop不会就地修改,创建副本返回
    df.drop(['B', 'C'], axis=1, inplace=True)      # inplace=True会就地修改

    使用列数删除,传入参数是int,列表,者切片:

    df.drop(df.columns[0], axis=1, inplace=True)       # 删除第1列
    df.drop(df.columns[0:3], axis=1, inplace=True)     # 删除前3列
    df.drop(df.columns[[0, 2]], axis=1, inplace=True)  # 删除第1第3列

    3,增加行

    3.1,loc,at,set_value

    想增加一行,行名称为‘5’,内容为[16, 17, 18, 19]

    df.loc['5'] = [16, 17, 18, 19]    # 后面的序列是Iterable就行
    df.at['5'] = [16, 17, 18, 19]
    df.set_value('5', df.columns, [16, 17, 18, 19], takeable=False) # warning,set_value会被取消

    3.2,append

    添加有name的Series: 

    s = pd.Series([16, 17, 18, 19], index=df.columns, name='5')
    df = df.append(s)

    添加没有name的Series,必须ignore_index:

    s = pd.Series([16, 17, 18, 19], index=df.columns)
    df = df.append(s, ignore_index=True)

    可以 append字典列表,同样需要必须ignore_index:

    ls = [{'A': 16, 'B': 17, 'C': 18, 'D': 19}, {'A': 20, 'B': 21, 'C': 22, 'D': 23}]
    df = df.append(ls, ignore_index=True)

    3.3,逐行增加

    简单的逐行添加内容,可以:

    df.loc[len(df)] = [16, 17, 18, 19]

    但需要注意:len(df)生成的是int,如果生成的int,df已经存在了,会覆盖该行数据,而不会新增

    3.4,插入行

    增加行没找到类似insert这种可以插入的方法,暂时替代方法可以先reindex,再赋值:

    df = df.reindex(index=df.index.insert(2, '5'))
    df.loc['5'] = [16, 17, 18, 19]

    4,df增加列

    一般涉及到增加列项时,经常会对现有的数据进行遍历运算,获得新增列项的值,所以这里结合对DataFrame的遍历讨论增加列。

    例如,想增加一列'E',值等于'A'和'C'列对应值之和。

    4.1,遍历DataFrame获取序列的方法

    s = [a + c for a, c in zip(df['A'], df['C'])]          # 通过遍历获取序列
    s = [row['A'] + row['C'] for i, row in df.iterrows()]  # 通过iterrows()获取序列,s为list
    s = df.apply(lambda row: row['A'] + row['C'], axis=1)  # 通过apply获取序列,s为Series
    s = df['A'] + df['C']                                  # 通过Series矢量相加获取序列
    s = df['A'].values + df['C'].values                    # 通过Numpy矢量相加获取序列

    4.2,[ ],loc

    通过df[]或者df.loc添加序列

    df.loc[:, 'E'] = s
    df['E'] = s

    4.3,Insert

    可以指定插入位置,和插入列名称

    df.insert(0, 'E', s) 

    4.4,concat

    s = pd.Series([16, 17, 18, 19], name='E', index=df.index)
    df = pd.concat([df, s], axis=1)

    4.5,iloc和loc遍历过程中给列赋值  

    效率比较低

    df['E']是DataFrame的一个Series,是引用,对其修改也能改变DataFrame,但运行时报了Warning

    df['E'] = None  # 需事先创建e列,否则iloc遍历会报错,loc遍历无需事先创建
    for i in range(len(df)):
        df['E'].iloc[i] = df['A'].iloc[i] + df['C'].iloc[i] 
    # SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame

    不用Series不会报Warning:

    df['E'] = None
    col_no = [i for i in df.columns].index('E') 
    for i in range(len(df)):
        df.iloc[i, col_no] = df['A'].iloc[i] + df['C'].iloc[i]

    用loc无需先给E列赋空值:

    for i in df.index:
        df.loc[i, 'E'] = df.loc[i, 'A'] + df.loc[i, 'C']

    4.6,逐列增加

    简单的逐列添加内容,可以:

    df[len(df)] = [16, 17, 18, 19]

    但需要注意:len(df)生成的是int,如果生成的int,df已经存在了,会覆盖该列数据,而不会新增

    4.7,其他方法

     增加3列,EFG,value默认为np.NaN

    df = pd.concat([df, pd.DataFrame(columns=list('EFG'))])   # 列的次序无法指定,并且fillna时会对整个df做出调整
    
    df = df.reindex(columns=list('ABCDEFG'),  fill_value=0)   # 列的次序按照list指定,并且fill_value只对新增列做出调整,

     

    展开全文
  • pandas删除某一的方法

    万次阅读 多人点赞 2018-11-01 15:12:00
    删除sub_grade_,输入del df['sub_grade_x'] 方法二:采用drop方法,有下面三种等价的表达式: 1. df= df.drop('column_name', 1) 输入:df,drop('num',axix=1),不改变内存,及输入df的时候,它还是显示原...
  • 之前沉迷于使用index删除,然而发现...df.drop(index=[1,2], axis=1, inplace=True) #axis=1,试图指定列,然并卵 print df 输出为 A B C D 0 0 1 2 3 还是按照行进行了删除 后来请教大神得知,可以用: df.drop(df
  • Pandas选取/删除含有指定值的行

    千次阅读 2019-11-01 11:27:41
    方法 ...df['列名'].isin([指定值]) csv内容 测试 import pandas as pd if __name__=="__main__": path = "./test.csv" df = pd.read_csv(path, header=0, names= ["DEVICE_ID"...
  • Pandas删除包含特殊字符的行

    万次阅读 多人点赞 2018-08-30 21:06:06
    2、删除type中包含"未知"的所有行 1、测试文件(test_data.xlsx)数据 2、删除type中包含"未知"的所有行 # -*- coding: utf-8 -*- import pandas as pd read_data=pd.read_excel('test_data.xlsx') #...
  • 主要介绍了pandas获取csv指定行,的操作方法,本文简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 一次性删除指定均为空的行数据 df_last.dropna(subset=['amdlevel','focuspath','imgcoord'],inplace=True)
  • dataframe、series如何删除指定列中有空值的行+如何删除多列都为空的行
  • Pandas技巧:删除列为指定值的数据

    千次阅读 2018-10-16 11:11:08
    初始化一个DataFrame df = pd.DataFrame(np.arange(12).reshape(3,4), columns=['A', 'B', 'C', 'D']) 输出: ...如果要删除A中值为0的那一行: df = df[df['A'] != 0] 输出: A B C D 1 4 5 6 7...
  • pandas 删除指定表头的

    千次阅读 2020-07-22 09:53:26
    一行代码即可删除,列名为 ‘序号’ 的删除 列名为 ‘序号’ 的 data3 = data2.drop(['序号'], axis=1) data3.head(1)
  • pandas指定某一列删除nan

    千次阅读 2020-12-10 18:44:08
    这个非常霸道,因为有些时候仅仅是doc出现了空 但doc为空的我并不想删除 换而言之,只想删除TC_ID这列为空的。那我们可以通过布尔索引去进行过滤。除此之外,我们需要来研究df.dropna()这个方法本身。 实现如下 ...
  • 使用df.drop DataFrame.drop(labels=...2、axis:指定哪一个轴,=0删除行,=1删除列; 3、columns:指定某一或者多(以list形式); 4、level:索引等级,针对多重索引的情况; 5、inplaces:是否替换原来的datafram
  • pandas保留想要的列或删除指定列

    千次阅读 2021-03-25 11:23:39
    pandas 保留想要的列 方法1: ...删除指定列 方法1:指定列名删除 df.drop([‘name1’,‘name2’],axis=1,inplace=True) 方法2:指定列数删除 df.drop(df.columns[0:n], axis=1, inplace=True) ...
  • pandas 删除某行或某

    千次阅读 2020-04-23 20:51:58
    pandas 提供了两种删除数据的方法:del 和 drop。 del 可以删除,是原地操作。 drop 可以删除某行或某,可以原地也可以非原地。 示例 import pandas as pd import numpy as np x1 = pd.DataFrame(np.as...
  • 小编典典 这个问题已经解决,但是… …还要考虑伍特(Wouter)在其原始评论中提出的解决方案。dropna()大熊猫内置了处理丢失数据(包括)的功能。除了通过手动执行可能...上的文档),包括删除列而不是行。 2020-02-15
  • pandas.DataFrame删除空值所在的行

    万次阅读 2020-06-01 14:10:04
    通过isnull我们发现某有几个空值,要把该空值所在行删除怎么操作?用dropna()会删除所有有空值的行,请看下面实例。 该函数主要用于滤除缺失数据。 如果是Series,则返回一个仅含非空数据和索引值的Series,默认...
  • Pandas 删除指定

    千次阅读 2020-07-01 15:02:12
    需求:删除指定列中NaN所在行。 如下图,’open‘ 列中有一行为NaN,定位到它,然后删除。 定位: df[np.isnan(df['open'])].index # 这样即可定位到所在行的index,然后对该index进行drop操作即可 删除行 df....
  • 今天小编就为大家分享一篇pandas.DataFrame删除/选取含有特定数值的行或实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • df.dropna(subset = [‘需要考虑空值的’])
  • df[~(df['col'].isnull())] #删掉空行 df.dropna(axis=0) #删除有空值的...df.dropna(axis=1) #删除有空值的,使用参数axis=1 drop解释 Ipython:dataframe.drop? Signature: dataframe.drop( labels=None, ...
  • pandas删除指定

    万次阅读 2018-08-14 10:29:20
    在处理pandas的DataFrame中,如果想像excel那样筛选,只要其中的某一行或者几行,可以使用isin()方法来实现,只需要将需要的行值以列表方式传入即可,还可传入字典,进行指定筛选。 但是如果我们只想要所有内容中不...
  • pandas学习笔记--删除指定行或

    千次阅读 2020-04-11 18:24:28
    ------pandas删除指定列或行------ 删除单行 df2=df1.drop(labels=0, axis=0) # axis默认等于0,即按行删除,这里表示按行删除第0行 删除指定的某几行(非连续的) 通过labels来控制删除行或列的个数,如果是删多行...
  • pandas删除包含指定内容的行

    千次阅读 2021-01-17 15:55:12
    Outline处理数据时,遇到文件中包含一些不需要的数据(行),需要把这些不符合要求的行给...筛选出指定行找到所有包含2000年的数据:source_df[(source_df['date'].map(lambda d: d.split('/')[0])).isin([‘2000’])]...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,930
精华内容 5,972
关键字:

pandas删除指定列