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

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
foo  one    0   0
bar  one    1   2
foo  two    2   4
bar  three  3   6
foo  two    4   8
bar  two    5  10
foo  one    6  12
foo  three  7  14

print(df.loc[df[‘A’] == ‘foo’])

A    B     C   D
foo  one   0   0
foo  two   2   4
foo  two   4   8
foo  one   6  12
foo  three 7  14
如果你想包括多个值,把它们放在一个list里面,然后使用isin

print(df.loc[df[‘B’].isin([‘one’,‘three’])])

A    B      C   D
foo  one    0   0
bar  one    1   2
bar  three  3   6
foo  one    6  12
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
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值