Python Pandas中根据列的值选取多行数据

yipeiwu_com6年前Python基础

Pandas中根据列的值选取多行数据

# 选取等于某些值的行记录 用 == 
df.loc[df['column_name'] == some_value]
# 选取某列是否是某一类型的数值 用 isin
df.loc[df['column_name'].isin(some_values)]
# 多种条件的选取 用 &
df.loc[(df['column'] == some_value) & df['other_column'].isin(some_values)]
# 选取不等于某些值的行记录 用 !=
df.loc[df['column_name'] != some_value]
# isin返回一系列的数值,如果要选择不符合这个条件的数值使用~
df.loc[~df['column_name'].isin(some_values)]
import pandas as pd 
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
  'B': 'one one two three two two one three'.split(),
  'C': np.arange(8), 'D': np.arange(8) * 2})
print(df)
   A   B C  D
0 foo  one 0  0
1 bar  one 1  2
2 foo  two 2  4
3 bar three 3  6
4 foo  two 4  8
5 bar  two 5 10
6 foo  one 6 12
7 foo three 7 14
print(df.loc[df['A'] == 'foo'])
   A   B C  D
0 foo  one 0  0
2 foo  two 2  4
4 foo  two 4  8
6 foo  one 6 12
7 foo three 7 14
# 如果你想包括多个值,把它们放在一个list里面,然后使用isin
print(df.loc[df['B'].isin(['one','three'])])
   A   B   C  D
0 foo  one 0  0
1 bar  one 1  2
3 bar three 3  6
6 foo  one 6 12
7 foo three 7 14
df = df.set_index(['B'])
print(df.loc['one'])
 A  B  C   D
one foo 0  0
one bar 1  2
one foo 6 12
A  B  C  D  
one foo 0  0
one bar 1  2
two foo 2  4
two foo 4  8
two bar 5  10
one foo 6  12

总结

以上所述是小编给大家介绍的Python Pandas中根据列的值选取多行数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

python binascii 进制转换实例

如下所示: #coding:utf-8 import binascii a = 'worker' #先把worker转换成二进制数据然后在用十六进制表示 b = binasc...

Python查找文件中包含中文的行方法

前言 近几天在做多语言版本的时候再次发现,区分各种语言真的是一件比较困难的事情,上一次做中文提取工具的就花了不少时间,这次决定用python试一试,结果写起来发现真是方便不少,自己整理了...

python super用法及原理详解

这篇文章主要介绍了python super用法及原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 概念 super作为pyth...

使用Rasterio读取栅格数据的实例讲解

Rasterio简介 有没有觉得用GDAL的Python绑定书写的代码很不Pythonic,强迫症的你可能有些忍受不了。不过,没关系,MapBox旗下的开源库Rasterio帮我们解决了...

Python计算字符宽度的方法

本文实例讲述了Python计算字符宽度的方法。分享给大家供大家参考,具体如下: 最近在用python写一个CLI小程序,其中涉及到计算字符宽度,目标是以友好的方式将一个长字符串截取为等宽...