精华内容
下载资源
问答
  • 【python】pandas.DataFrame选取特定行
    千次阅读
    2020-10-10 10:36:59
    >>> df = pd.DataFrame([['GD', 'GX', 'FJ'], ['SD', 'SX', 'BJ'], ['HN', 'HB', 'AH'], ['HEN', 'HEN', 'HLJ'], ['SH', 'TJ', 'CQ']], columns=['p1', 'p2', 'p3'])
    >>> df
        p1   p2   p3
    0   GD   GX   FJ
    1   SD   SX   BJ
    2   HN   HB   AH
    3  HEN  HEN  HLJ
    4   SH   TJ   CQ
    # 筛选p1列中值为'SD'和'HN'的行:
    >>> df[df.p1.isin(['SD','HN'])]
       p1  p2  p3
    1  SD  SX  BJ
    2  HN  HB  AH
    

    原文

    https://blog.csdn.net/yuanxiang01/article/details/79285769?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allfirst_rank_v2~rank_v25-1-79285769.nonecase&utm_term=dataframe%E9%80%89%E5%8F%96%E7%89%B9%E5%AE%9A%E7%9A%84%E8%A1%8C&spm=1000.2123.3001.4430

    更多相关内容
  • dataframe选取特定行和列

    千次阅读 2020-06-29 09:46:06
    pandas选取特定行和列 选取行 df= pd.read_csv('data.csv') df.loc[3:6] # 选取多行 选取列 data = df['column_name'] # 按照指定列名选取 data = df[['column_name1', 'column_name2']] # 取多列 data = df....

    dataframe选取特定行和列

    1. 选取行
    df= pd.read_csv('data.csv')
    data = df.loc[3:6]  # 选取多行
    
    # 按某列值在某个区间内选取行
    data = df[(df['column'] >= t1) & (df['column'] <= t2)]
    
    # 按索引选择行(选择idx这一行)
    data.loc[[idx]]  # 或者:data.loc[idx:idx] 
    
    1. 选取列
    # 按照指定列名选取(data为series类型)
    data = df['column_name']
     # 取多列(data为DataFrame类型)
    data = df[['column_name1', 'column_name2']] 
     # 按位置取某几列(data为DataFrame类型)
    data = df.iloc[:, 0:5] 
    
    1. 取指定某行某列的元素
    # 取指定第2行第3列的元素
    data = df.loc[2][3]
    

    【注】使用loc、iloc选取数据后的数据类型均保持不变

    展开全文
  • pandas.DataFrame选取特定行 使用Python进行数据分析时,经常要使用到的一个数据结构就是pandas的DataFrame,如果我们想要像Excel的筛选那样,只要其中的一行或某几行,可以使用isin()方法,将需要的行的值以列表...
  • 今天小编就为大家分享一篇pandas.DataFrame删除/选取含有特定数值的或列实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • #选取某列含有特定数值的 # 选取df1中A列包含数字1的 df1=df1[df1['A'].isin([1])] #通过~取反,选取不包含数字1的 df2=df2[~df2['A'].isin([1])] print(df1) print(df2) 结果: A B C row0 1 2 3 row1...

    pandas中的切片方法

    [],loc,iloc,at,iat,ix
    基础数据

    import pandas as pd
    import random
    random.seed(0)
    rnd_1 = [random.randrange(1,20) for x in range(10)]
    rnd_2 = [random.randrange(1,20) for x in range(10)]
    rnd_3 = [random.randrange(1,20) for x in range(10)]
    fecha = pd.date_range('2012-4-10', '2012-4-19')
    data = pd.DataFrame({'fecha':fecha, 'rnd_1': rnd_1, 'rnd_2': rnd_2, 'rnd_3': rnd_3})
    print(data)
    print(data.describe())
    

    结果:

           fecha  rnd_1  rnd_2  rnd_3
    0 2012-04-10     13     19     10
    1 2012-04-11     14      7      4
    2 2012-04-12      2     17      3
    3 2012-04-13      9      5     11
    4 2012-04-14     17     10     16
    5 2012-04-15     16      5     18
    6 2012-04-16     13      4      4
    7 2012-04-17     10      9     12
    8 2012-04-18     16     18     14
    9 2012-04-19     12      5     11
               rnd_1      rnd_2      rnd_3
    count  10.000000  10.000000  10.000000
    mean   12.200000   9.900000  10.300000
    std     4.417138   5.915141   5.186521
    min     2.000000   4.000000   3.000000
    25%    10.500000   5.000000   5.500000
    50%    13.000000   8.000000  11.000000
    75%    15.500000  15.250000  13.500000
    max    17.000000  19.000000  18.000000
    

    []切片方法

    按照索引实现行选择或列选择或区块选择

    print(data[1:5])   # 行选择
    
           fecha  rnd_1  rnd_2  rnd_3
    1 2012-04-11     14      7      4
    2 2012-04-12      2     17      3
    3 2012-04-13      9      5     11
    4 2012-04-14     17     10     16
    
    print(data[['rnd_1', 'rnd_2']])   # 列选择
    
       rnd_1  rnd_2
    0     13     19
    1     14      7
    2      2     17
    3      9      5
    4     17     10
    5     16      5
    6     13      4
    7     10      9
    8     16     18
    9     12      5
    
     # 区块选择, 对于多列选择,不能像行选择时一样使用1:5这样的方法来选择
    print(data[:5][['rnd_1', 'rnd_2']]) 
    
       rnd_1  rnd_2
    0     13     19
    1     14      7
    2      2     17
    3      9      5
    4     17     10
    
    

    loc

    loc可以按照索引来进行行列选择,包含结尾

    # 按照索引行选择, loc与第一种方法不同之处在于会把第5行也选择进去,而第一种方法只会选择到第4行为止。
    print(data.loc[1:5])
    
           fecha  rnd_1  rnd_2  rnd_3
    1 2012-04-11     14      7      4
    2 2012-04-12      2     17      3
    3 2012-04-13      9      5     11
    4 2012-04-14     17     10     16
    5 2012-04-15     16      5     18
    
    # 区块选择
    print(data.loc[2:4, ['rnd_2', 'fecha']])
    
       rnd_2      fecha
    2     17 2012-04-12
    3      5 2012-04-13
    4     10 2012-04-14
    

    loc能够选择在两个特定日期之间的数据,这两个日期必须都要在索引中

    # 将行索引设定为日期
    data_fecha = data.set_index('fecha')
    print(data_fecha.head())
    
                rnd_1  rnd_2  rnd_3
    fecha                          
    2012-04-10     13     19     10
    2012-04-11     14      7      4
    2012-04-12      2     17      3
    2012-04-13      9      5     11
    2012-04-14     17     10     16
    
    # 生成两个特定日期
    from pandas import datetime
    fecha_1 = datetime(2012, 4, 14)
    fecha_2 = datetime(2012, 4, 18)
    
     # 生成切片数据
    print(data_fecha.loc[fecha_1: fecha_2])
    
                rnd_1  rnd_2  rnd_3
    fecha                          
    2012-04-14     17     10     16
    2012-04-15     16      5     18
    2012-04-16     13      4      4
    2012-04-17     10      9     12
    2012-04-18     16     18     14
    

    如果没有特殊需求,强烈建议使用loc而尽量少使用[],因为loc在对DataFrame进行重新赋值操作时会避免chained indexing问题,使用[]时编译器很可能会给出SettingWithCopy的警告。

    iloc

    loc是按照索引(index)的值来选取,iloc是按照索引的位置来进行选取。iloc不关心索引的具体值是多少,只关心位置是多少,所以使用iloc时方括号中只能使用数值

    # 行选择
    print(data_fecha.iloc[1: 5, :])
    
                rnd_1  rnd_2  rnd_3
    fecha                          
    2012-04-11     14      7      4
    2012-04-12      2     17      3
    2012-04-13      9      5     11
    2012-04-14     17     10     16
    
    # 列选择
    print(data_fecha.iloc[:,[1,2]].head())
    
                rnd_2  rnd_3
    fecha                   
    2012-04-10     19     10
    2012-04-11      7      4
    2012-04-12     17      3
    2012-04-13      5     11
    2012-04-14     10     16
    
    # 切片选择
    print( data_fecha.iloc[[1,3,6],[0,2]])
    
                rnd_1  rnd_3
    fecha                   
    2012-04-11     14      4
    2012-04-13      9     11
    2012-04-16     13      4
    

    at

    at的使用方法与loc类似,但是比loc有更快的访问数据的速度,只能访问单个元素,不能访问多个元素

    iat

    iat对于iloc的关系就像at对于loc的关系,是一种更快的基于索引位置的选择方法,同at一样只能访问单个元素

    ix

    以上几种方法都要求查询的秩在索引中,或者位置不超过长度范围,而ix允许你得到不在DataFrame索引中的数据。

    选取或者删除某列含有特殊数值的行

    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中A列包含数字1的行
    df1=df1[df1['A'].isin([1])]
    #通过~取反,选取不包含数字1的行
    df2=df2[~df2['A'].isin([1])]
    print(df1)
    print(df2)
    
    

    结果:

          A  B  C
    row0  1  2  3
    row1  4  5  6
    row2  7  8  9
    
          A  B  C
    row0  1  2  3
    
          A  B  C
    row1  4  5  6
    row2  7  8  9
    
    

    选取或者删除某行含有特殊值的列

    import pandas as pd
    import numpy as np
    
    a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    df2 = pd.DataFrame(a, index=['row0', 'row1', 'row2'], columns=list('ABC'))
    print(df2)
    #选取某行含有特定数值的列
    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)
    
    

    结果:

    A  B  C
    row0  1  2  3
    row1  4  5  6
    row2  7  8  9
    ['C']
          A  B
    row0  1  2
    row1  4  5
    row2  7  8
    
    展开全文
  • 导入pandas ...然后创建一个DataFrame data = {'ID':[0,1,2,3,4,5,6,7,8,9], 'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada', 'Ohio', 'Nevada', 'Ohio', 'Nevada'], 'year': [2000

    导入pandas

    import pandas as pd
    

    首先创建一个列表(列表中存储的是ID号)

    a = [0,3,8,10]

    然后创建一个DataFrame

    data = {'ID':[0,1,2,3,4,5,6,7,8,9],
            'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada', 'Ohio', 'Nevada', 'Ohio', 'Nevada'],
            'year': [2000, 2001, 2002, 2001, 2002, 2003, 2001, 2002, 2001, 2002],
            'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2, 1.5, 1.7, 3.6, 2.4]}
    
    data = pd.DataFrame(data)
    data
    
    
    
    
    
        ID	state	year	pop
    0	0	Ohio	2000	1.5
    1	1	Ohio	2001	1.7
    2	2	Ohio	2002	3.6
    3	3	Nevada	2001	2.4
    4	4	Nevada	2002	2.9
    5	5	Nevada	2003	3.2
    6	6	Ohio	2001	1.5
    7	7	Nevada	2002	1.7
    8	8	Ohio	2001	3.6
    9	9	Nevada	2002	2.4

    通过a列表中的ID号在data中选取相对应的数据

    data1 = data[(data['ID'].isin(a))]
    
    
    
    
    
        ID	state	year	pop
    0	0	Ohio	2000	1.5
    3	3	Nevada	2001	2.4
    8	8	Ohio	2001	3.6

    展开全文
  • pandas取dataframe特定行/列 2021-11-12

    千次阅读 2021-11-12 18:37:14
    import numpy as np from pandas import DataFrame ...从中取出特定/列可以使用.loc()函数。但是.loc()有一个特性,与普通的python切片不同,起止位置的内容都会被包括。 Note that contrary to usual python ..
  • 今天小编就为大家分享一篇pandas.dataframe索引表达式选取方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • DataFrame根据值筛选特定行

    千次阅读 2020-03-10 09:35:18
    DataFrame中,使用df.isin()函数可以在某一列中筛选出具有某一个或某几个特定值的 df = DataFrame() 筛选包含1的 df_data_1 = df[df['col_name'].isin([1])] 筛选包含1,2,3的 df_data_1 = df[df['col_...
  • pandas中dataframe如何取特定行/列

    千次阅读 2021-05-01 21:00:07
    按列取、按索引/取、按特定行列取 import numpy as np from pandas import DataFrame import pandas as pd df=DataFrame(np.arange(12).reshape((3,4)),index=['one','two','thr'],columns=list('abcd')) df['a...
  • pandas.DataFrame选取/排除特定行

    万次阅读 2018-02-08 08:36:38
    pandas.DataFrame选取特定行 使用Python进行数据分析时,经常要使用到的一个数据结构就是pandas的DataFrame,如果我们想要像Excel的筛选那样,只要其中的一行或某几行,可以使用isin()方法,将需要的行的值以列表...
  • 常见的dataframe选取行列方式

    千次阅读 2021-03-25 10:22:30
    背景 在机器学习、数据分析中,拿到原始数据之后要做的第一件事情就是数据的清洗整理工作,得到我们最终想要的数据。...150,共有150个样本数据。 5列,前四列数据为鸢尾花的四种特征,如’花萼长度’,‘花萼宽度’,
  • pandas切片选取dataframe指定

    千次阅读 2019-04-15 18:59:40
    废话不多说,直接上代码: mydf=mydf.iloc[:7208] 懂我吧?不解释了。
  • DataFrame选取行或列

    2018-06-07 16:36:00
    来自:https://blog.csdn.net/wanglingli95/article/details/78887771 转载于:https://www.cnblogs.com/keye/p/9151455.html
  • pandas选取特定行和列

    万次阅读 2019-05-23 21:52:13
    1、数据由pandas读取 df = pd.DataFrame(data) ...3、选择特定行 # 选择每一列的前2行数据 df.iloc[:2] df.iloc[10:12] #选择第10行到11行 4、行号和列号同时控制 # 选择前三列前三行 df.iloc[:3,:3] ...
  • DataFrame 选取其中的两列数据

    千次阅读 2021-01-30 17:04:46
    DataFrame 选取其中的两列数据 操作数据:train.csv 提取码:8686 # -*- coding: utf-8 -*- """ @author: 97942 """ import numpy as np import pandas as pd train = pd.read_csv('.\\train.csv')#注:代码文件...
  • 一、删除/选取某列含有特殊要求的 1、展示数据dataframe 2、选取"维度名称"中为“Z00013CK”的数据 dt1[dt1['维度名称'].isin(['Z00013CK'])] 3、选取“维度名称”中含有“000”字段的数据? 暂时未找到,未完...
  • 选取或者删除某列含有特殊数值的 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() #选取某列含有特定数值的 ...
  • 今天小编就为大家分享一篇python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • DataFrame筛选出指定列值的

    千次阅读 2021-08-25 18:34:51
    对于一个DataFrame,常常需要筛选出某列为指定值的。 pandas中获取数据的有以下几种方法: 布尔索引 位置索引 标签索引 使用API 假设df数据如下: import pandas as pd import numpy as np df = pd.DataFrame({...
  • pandas.DataFrame删除/选取含有特定数值的或列发布时间:2018-06-20 09:13,浏览次数:9726, 标签:pandasDataFrame1.删除/选取某列含有特殊数值的import pandas as pd import numpy as np a=np.array([[1,2,3],...

空空如也

空空如也

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

dataframe选取特定的行

友情链接: pdf.rar