精华内容
下载资源
问答
  • pandas 删除行

    2020-08-16 17:01:39
    1.df.loc df_dong.loc[1,:]返回的不是...只能删除指定 3.df df[ df[‘成交金额’] > 10000] df[ ~ df[‘证券名称’].str.contains(‘联通’) ] 参考: https://www.cnblogs.com/cocowool/p/8421997.html ...

    1.df.loc

    df_dong.loc[1,:]返回的不是数据框
    df_song.loc[i:i,:] 返回的才是数据框

    2.df.drop()
    只能删除指定行

    3.df

    df[ df[‘成交金额’] > 10000]

    df[ ~ df[‘证券名称’].str.contains(‘联通’) ]

    参考:
    https://www.cnblogs.com/cocowool/p/8421997.html

    展开全文
  • 主要介绍了pandas删除行删除列增加行增加列的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 1.2,通过各种筛选方法实现删除行 详见pandas“选择行单元格,选择行列“的笔记 举例,通过筛选可以实现很多功能,例如要对某行数据去重,可以获取去重后的index列表后,使用loc方法: >>> df.loc['2','B']=...

    创建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,通过各种筛选方法实现删除行

    详见pandas“选择行单元格,选择行列“的笔记

    举例,通过筛选可以实现很多功能,例如要对某行数据去重,可以获取去重后的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列
    

     

    2.3,通过各种筛选方法实现删除列

    详见pandas“选择行单元格,选择行列“的笔记

     

    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只对新增列做出调整,推荐!
    

     

     
     
     
     

    转载于:https://www.cnblogs.com/guxh/p/9420610.html

    展开全文
  • 写任何有关pandas的代码前,我们应该先... 我们工作中导入一些数据,往往会要删除一些或者列来精简数据。使用drop方法可以轻松的做到。drop也可以直接修改数据而不需要生成新的对象。后面需要加参数inplace。 ...

    写任何有关pandas的代码前,我们应该先导入pandas

            import pandas as pd

    我们下面出现全部的pd都代表对pandas的引用

     

    Series对象删除元素

            我们工作中导入一些数据,往往会要删除一些行或者列来精简数据。使用drop方法可以轻松的做到。drop也可以直接修改数据而不需要生成新的对象。后面需要加参数inplace。

            生成新对象

                  新对象=Series对象.drop( [ 索引 ] )

    import pandas as pd
    dynasty=pd.Series([405,319,289,276],index=['汉朝','宋朝','唐朝','明朝'])
    dynasty1=dynasty.drop('宋朝')

            原对象修改

                    Series对象.drop( [ 索引 ] , inplace=True )

    dynasty=pd.Series([405,319,289,276],index=['汉朝','宋朝','唐朝','明朝'])
    dynasty.drop( '宋朝',inplace=True )

     

    DataFrame对象删除行和列

            与Series对象不同,DataFrame对象有两个轴向,分别对应着行和列。对于行的删除与Series没什么不同,但是如果要对列删除要加上轴向参数axis(默认轴向参数为axis=0也就是行)。同样修改本体要加上inplace参数。

           DataFrame删除行(修改原数据)

                   Dataframe对象.drop( [ 索引 ] , inplace=True)

    import pandas as pd
    data=[['晴','阴','雨','多云','晴'],['多云','雨','雨','多云','晴'],['多云','晴','阴','雨','雨']]
    wxr=pd.DataFrame(data,index=['周一','周二','周三'],columns=['北京','上海','广州','深圳','杭州'])
    wxr.drop(['周一','周三'],inplace=True)

     

            DataFrame删除列(修改原数据)

                    Dataframe对象.drop( [ 索引 ],axis=1, inplace=True)

    data=[['晴','阴','雨','多云','晴'],['多云','雨','雨','多云','晴'],['多云','晴','阴','雨','雨']]
    wxr=pd.DataFrame(data,index=['周一','周二','周三'],columns=['北京','上海','广州','深圳','杭州'])
    wxr.drop(['杭州','上海'],axis=1,inplace=True)

     

    展开全文
  • pandas 删除指定

    万次阅读 2018-03-03 00:18:13
    在处理pandas的DataFrame中,如果想像excel那样筛选,只要其中的某一或者几行,可以使用isin()方法来实现,只需要将需要的值以列表方式传入即可,还可传入字典...pandas.DataFrame中删除包涵特定字符串所在的...

    在处理pandas的DataFrame中,如果想像excel那样筛选,只要其中的某一行或者几行,可以使用isin()方法来实现,只需要将需要的行值以列表方式传入即可,还可传入字典,进行指定筛选。

    但是如果我们只想要所有内容中不包含特定行的内容,却并没有一个isnotin()方法,经常查找之后,发现只能换种方式使用isin()来实现这个需求。

     

    完整代码扫描下方二维码回复【pandas】获取。

    有酒有风

     

    展开全文
  • pandas删除指定详解

    2021-01-20 07:09:32
    以上所述是小编给大家介绍的pandas删除指定详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对软件开发网网站的支持! 您可能感兴趣的文章:Pandas过
  • pandas删除含有空值的

    万次阅读 多人点赞 2018-07-14 13:30:16
    df.dropna(axis=0, how='any', inplace=True) axis:0-操作(默认),1-列操作 how:any-只要有空值就删除(默认),all-全部为空值才删除 inplace:False-返回新的数据集(默认),True-在愿数据集上操作...
  • Pandas 删除指定

    2020-07-01 15:02:12
    定位要删除的行 需求:删除指定列中NaN所在行。 如下图,’open‘ 列中有一行为NaN,定位到它,然后删除。...删除行 df.drop(df[np.isnan(df['open'])].index, inplace=True) # 直接drop对应indx即可删除该行 ...
  • pandas删除指定

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

    千次阅读 2020-04-23 20:51:58
    pandas 提供了两种删除数据...drop 可以删除或某列,可以原地也可以非原地。 示例 import pandas as pd import numpy as np x1 = pd.DataFrame(np.asarray([1,2,3,4,5]),columns=['x1']) x2 = pd.DataFrame(np...
  • Python中pandas dataframe删除或一列:drop函数

    万次阅读 多人点赞 2018-02-10 20:10:25
    在这里默认:axis=0,指删除index,因此删除columns时要指定axis=1; inplace=False,默认该删除操作不改变原数据,而是返回一个执行删除操作后的新dataframe; inplace=True,则会直接在原...
  • pandas删除值为0

    千次阅读 2020-10-12 09:31:06
    删除值为0 先求出值为0所在的索引 然后根据索引行删除 df.drop( index = df.age[df1.age == 0].index )
  • Python pandas 删除指定/列数据

    千次阅读 2021-03-16 17:31:56
    滤除缺失数据dropna()1)滤除含有NaN值的所有2)滤除含有NaN值的所有列3)滤除元素都是NaN值的4)滤除元素都是NaN值的列5)滤除指定列中含有缺失的2.删除重复值 drop_duplicates()3.根据指定条件删除行列drop() 1....
  • 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删除某一或一列

    万次阅读 多人点赞 2019-04-18 16:21:53
    1、用pandas读取excel表的数数据 # -*- coding: utf-8 -*- import pandas as pd file = './data.xlsx' data = pd.read_excel(file, index = True) 2、输出结果 In [15]: print(data) A B C D 0 56 78 19 ...
  • 使用pandas处理数据时,如何实现删除/选取某列含有特殊数值的或者某含有特殊数值的列,以及如何去除含有空值的或列
  • pandas 删除

    2019-04-16 20:04:57
    2、删除具体 df = df.drop('行名') 或者按照索引删除 df = df.drop(drop.index[1]) 3、删除包含某些数值的或者列 df = df [ df['xxxx'] < 1 ] 4、删除包含某些数字、字符的或者列 df = df [~ df['xxx']....
  • Pandas删除行列

    2020-03-19 15:59:08
    Pandas删除行列 删除行列的方法有主要有del和drop方法 1. del方法 del方法主要用于删除列 df = pd.read_csv(file) #删除列 del df[column_name] #例如,删除name列 del df['name'] 2. drop方法 drop方法最常用,可...
  • pandas dataframe 删除行和列

    万次阅读 2018-06-26 09:26:18
    原始数据:删除行.drop()方法若不设置参数inplace=True,则原数据不发生改变,比如删除第1行:输出如下:若设置参数inplace=True,则原数据发生改变输出,注意到这里df1输出为“None”:正确代码不用再赋值df1,如下...
  • pandas DataFrame或列的删除方法 pandas DataFrame的修改方法 此文我们继续围绕DataFrame介绍相关操作。 平时在用DataFrame时候,删除操作用的不太多,基本是从源DataFrame中筛选数据,组成一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,083
精华内容 433
关键字:

pandas删除行