当前位置:   article > 正文

Pandas入门——选取数据_pandas 取一行

pandas 取一行

1、Series

1、1 下标或标签作为索引

1、1、1 选择一行:

  1. dict = {'a': 0, 'b': 1, 'c': 2}
  2. df = pd.Series(dict)
  3. print(df)
  4. print(df[0])
  5. print(df['a'])
  1. a 0
  2. b 1
  3. c 2
  4. dtype: int64
  5. 0
  6. 0

想要显示带索引(标签)的某一行数据时,需要内部再嵌套一个[] 。

  1. print(df[[0]])
  2. print(df[['a']])
  1. a 0
  2. dtype: int64
  3. a 0
  4. dtype: int64

1、1、2 选择多行:

截取字符

print(df[:2])
  1. a 0
  2. b 1
  3. dtype: int64

类似于字典,判断标签是否存在。

print('c' in df)
True

2、DataFrame

2、1 标签作为索引

2、1、1 选择列

2、1、1、1 选择一列:

(1)未使用函数

  1. dict = {'one': {'a': 0, 'b': 1, 'c': 2}, 'two': {'a': 4, 'b': 9, 'c': 3}}
  2. df = pd.DataFrame(dict)
  3. print(df['one'])
  1. a 0
  2. b 1
  3. c 2
  4. Name: one, dtype: int64

与Series类似,想要显示带索引的数据时,需要内部再嵌套一个[]。 

print(df[['one']])
  1. one
  2. a 0
  3. b 1
  4. c 2

(2)使用函数

df.loc[]一般适用于根据标签选择行的情况,但也可以写成以下形式选择列。

print(df.loc[:, ['one']])
  1. one
  2. a 0
  3. b 1
  4. c 2

2、1、1、2 选择不止一列

(1)未使用函数

print(df[['one', 'two']])
  1. one two
  2. a 0 4
  3. b 1 9
  4. c 2 3

(2)使用函数 

调用df.loc[]

print(df.loc[:, ['one', 'two']])
  1. one two
  2. a 0 4
  3. b 1 9
  4. c 2 3

2、1、2 选择行

2、1、2、1 选择一行

直接写df['a']会报错,正确且唯一的方法是调用df.loc[],但要注意以下两种方式的显示结果是不同的,嵌套[]可以显示索引。

print(df.loc['a'])
  1. one 0
  2. two 4
  3. Name: a, dtype: int64
print(df.loc[['a']])
  1. one two
  2. a 0 4

2、1、2、2 选择不止一行

print(df.loc[['a', 'b']])
  1. one two
  2. a 0 4
  3. b 1 9

2、1、3 选择行、列

(1)选择某一范围时

 先行后列

print(df.loc[['a', 'b'], ['one', 'two']])
  1. one two
  2. a 0 4
  3. b 1 9

(2)选择某一具体值时 

先行后列

print(df.loc[['a'], ['one']])
  1. one
  2. a 0

也可写成以下形式 ,但只输出值。

print(df.loc['a', 'one'])
0

2、2 下标作为索引

2、2、1 选择行

2、2、1、1 选择一行/多行

(1)未使用函数

直接写df[0]会报错,正确写法是df[:1]。

print(df[:1])
  1. one two
  2. a 0 4

与Series类似,切片可以灵活的截取不同行。

(2)使用函数

调用df.iloc[],但要注意以下两种方式的显示结果是不同的,切片可以显示索引。

print(df.iloc[0])
  1. one 0
  2. two 4
  3. Name: a, dtype: int64
print(df.iloc[0:1])
  1. one two
  2. a 0 4

2、2、2 选择列

2、2、2、1 选择一列/多列

 df.iloc[]一般适用于根据下标选择行的情况,但也可以写成以下形式选择列。

print(df.iloc[:, 0:2])
  1. one
  2. a 0
  3. b 1
  4. c 2

2、2、3 选择行、列

2、2、3、1 选择某一范围时

(1)未使用函数 

print(df[:2][['one', 'two']])
  1. one two
  2. a 0 4
  3. b 1 9

(2)使用函数

调用df.iloc[]

print(df.iloc[0:2, 0:2])
  1. one two
  2. a 0 4
  3. b 1 9

2、2、3、2 选择某一值时

(1)未使用函数

print(df[1:2][['one']])
  1. one
  2. b 1

(2)使用函数

print(df.iloc[1:2, 1:2])
  1. two
  2. b 9

2、3 dtype作为索引

支持numpy通用数据类型,include和exclude用于实现“提取这些数据类型的列”或“提取不是这些数据类型的列”。

  1. dft = pd.DataFrame({'A': np.random.rand(3),
  2. 'B': 1,
  3. 'C': 'foo',
  4. 'D': pd.Timestamp('20010102'),
  5. 'E': pd.Series([1.0] * 3).astype('float32'),
  6. 'F': False,
  7. 'G': pd.Series([1] * 3, dtype='int8')})
  8. print(dft.select_dtypes([bool]))
  1. A B C D E F G
  2. 0 0.079111 1 foo 2001-01-02 1.0 False 1
  3. 1 0.618861 1 foo 2001-01-02 1.0 False 1
  4. 2 0.346071 1 foo 2001-01-02 1.0 False 1
  5. F
  6. 0 False
  7. 1 False
  8. 2 False
print(dft.select_dtypes(include=['bool', 'number'], exclude=['float32']))
  1. A B F G
  2. 0 0.054771 1 False 1
  3. 1 0.722049 1 False 1
  4. 2 0.256301 1 False 1

其中通用数据类型如下:

  1. [numpy.generic,
  2. [[numpy.number,
  3. [[numpy.integer,
  4. [[numpy.signedinteger,
  5. [numpy.int8,
  6. numpy.int16,
  7. numpy.int32,
  8. numpy.int64,
  9. numpy.int64,
  10. numpy.timedelta64]],
  11. [numpy.unsignedinteger,
  12. [numpy.uint8,
  13. numpy.uint16,
  14. numpy.uint32,
  15. numpy.uint64,
  16. numpy.uint64]]]],
  17. [numpy.inexact,
  18. [[numpy.floating,
  19. [numpy.float16, numpy.float32, numpy.float64, numpy.float128]],
  20. [numpy.complexfloating,
  21. [numpy.complex64, numpy.complex128, numpy.complex256]]]]]],
  22. [numpy.flexible,
  23. [[numpy.character, [numpy.bytes_, numpy.str_]],
  24. [numpy.void, [numpy.record]]]],
  25. numpy.bool_,
  26. numpy.datetime64,
  27. numpy.object_]]
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号