Pandas 根据列的数值选择DataFrame的多行

 1. 选取等于某个特定值的行记录,用 == 

df.loc[df['column_name'] == some_value]

2. 选取等于某些的数值的行记录,用 isin

df.loc[df['column_name'].isin(some_values)]

3. 选取不等于某个特定值的行记录,用 !=

df.loc[df['column_name'] != some_value]

4. 选取不符合某些特定值的行记录,用~isin

df.loc[~df['column_name'].isin(some_values)

5. 多种条件的选取合并,用 & 

df.loc[(df['column'] == some_value) & df['other_column'].isin(some_values)]

样例 Example

输入:

import numpy as np
import pandas as pd

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})
     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

生成数据的Python代码 :

1. 输出某个特定值。

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

2. 输出某些特定值。

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

3. 把某一列设为索引,然后输出某个特定值。

df = df.set_index(['B'])
print(df.loc['one'])
       A  C   D
B              
one  foo  0   0
one  bar  1   2
one  foo  6  12
发布了330 篇原创文章 · 获赞 71 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/sinat_26811377/article/details/103124749