首页 > 其他分享 >如何根据列值从DataFrame中选择行?

如何根据列值从DataFrame中选择行?

时间:2023-10-28 19:24:35浏览次数:21  
标签:foo bar name df two DataFrame 选择 column 列值

内容来自 DOC https://q.houxu6.top/?s=如何根据列值从DataFrame中选择行?

如何在Pandas中根据某列的值选择DataFrame中的行?

在SQL中,我会使用:

SELECT *
FROM table
WHERE column_name = some_value

选择某列值等于标量的行,some_value,使用 ==

df.loc[df['column\_name'] == some_value]

选择某列值在某个可迭代对象中,some_values,使用 isin

df.loc[df['column\_name'].isin(some_values)]

结合多个条件使用 &

df.loc[(df['column\_name'] >= A) & (df['column\_name'] <= B)]

注意括号。由于Python的运算符优先级规则,& 的优先级比 <=>= 更高。因此,最后一个示例中需要使用括号。如果不使用括号,

df['column\_name'] >= A & df['column\_name'] <= B

会被解析为

df['column\_name'] >= (A & df['column\_name']) <= B

这会导致一个 Truth value of a Series is ambiguous error


选择某列值不等于 some_value 的行,使用 !=

df.loc[df['column\_name'] != some_value]

isin 返回一个布尔型 Series,因此要选择某列值 some_values 中的行,可以使用 ~ 对布尔型 Series 取反:

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


如果你有多个你想要包含的值,将它们放在一个列表(或更一般地说,任何可迭代对象)中,并使用 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.loc

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

或者,如果要从索引中包括多个值,使用 df.index.isin

df.loc[df.index.isin(['one','two'])]

输出结果为:

       A  C   D
B              
one  foo  0   0
one  bar  1   2
two  foo  2   4
two  foo  4   8
two  bar  5  10
one  foo  6  12

标签:foo,bar,name,df,two,DataFrame,选择,column,列值
From: https://www.cnblogs.com/xiaomandujia/p/17794489.html

相关文章

  • 评论功能的选择难题:数据结构如何选定?
    尊敬的小伙伴们,大家好!我是小米,一个热爱技术、热衷分享的90后程序员。今天,我要和大家一起探讨一个在软件开发中常见,却又充满深度的话题——"面试题:评论功能采用什么数据结构?"。在这个数字化时代,几乎每个应用程序都需要实现评论功能。无论是社交媒体、电子商务网站还是新闻阅读应用,评......
  • 汽车托运平台选择的误区有哪些
    国内私家车数量已经突破4亿,可是对于汽车托运这个词大多数车主却很陌生,第一次办理托运汽车时往往因为不了解物流行业而导致选择误区,很多人曾经遭受损失而对汽车托运充满怨恨,行者运车今天整理了导致很多人中招的选择汽车托运的3大误区,希望能够帮助你在选择汽车托运公司的时候能够......
  • LVS、Nginx、HAproxy区别与选择
    LVS:是LinuxVirtualServer的缩写,是一种基于Linux内核实现的高可用性、高性能的负载均衡技术 ;是基于四层的转发;Nginx:既是WEB服务器,缓存服务器,又是反向代理服务器,可以做七层的转发HAproxy:是基于四层和七层的转发,是专业的代理服务器;区别:LVS由于是基于四层的转发所以只能做端口......
  • vant时间选择器中对minDate进行初始化
    vant组件库中,DatetimePicker可以通过min-date和max-date属性确定可选的时间范围。但他只支持Date类型,时间戳的话会报错,需要转换一下<van-popupv-model="showStartTime"position="bottom"><van-datetime-pickerv-model="defaultStartDate"......
  • wpf webview2动态修改下载文件的下载路径 文件下载路径选择
    通过webview2下载文件时候会将文件保存在用户的默认下载目录,如果想调整成通过弹窗选择下载路径的方式则需要将默认行为做出修改。本文通过CoreWebView2_DownloadStarting这个事件来调整下载路径,基本思路为通过弹窗让用户选择需要保存的路径,如果用户取消了此操作则通过这个事件......
  • UUID和雪花(Snowflake)算法该如何选择?
    UUID和Snowflake都可以生成唯一标识,在分布式系统中可以说是必备利器,那么我们该如何对不同的场景进行不同算法的选择呢,UUID简单无序十分适合生成requestID,Snowflake里面包含时间序列等,可以用于排序,效率都还可以,本文详细介绍了我们选择的使用不同算法的原因,两种算法不同维度的......
  • 直播平台制作,日期选择框设置只可以选中某几个特定日期
    直播平台制作,日期选择框设置只可以选中某几个特定日期判断当前日期是否存在于可选范围avaiableDateList,存在disabledDate返回false代表可选,不存在返回true不可选择 代码示例: <a-date-pickerformat="YYYY-MM-DD":disabled-date="disabledDate"/>disabledDate(current){le......
  • series和DataFrame
    SeriesSeries是一个类似于一维数组的对象,它能够保存所有类型的数据。classpandas.Series(data=None,index=None,dtype=None,name=None,copy=False,fastpath=False)name是指Series对象的名字copy是指是否对数据进行复制fastpath是指校验Series的对象名称importpandasasp......
  • MySQL建数据库排序规则选择
    MySQL建数据库排序规则选择引言在MySQL数据库中,选择适合的排序规则对于数据的存储和检索非常重要。排序规则决定了字符比较的方式,影响数据库的数据排序和查询结果。本文将介绍MySQL中常见的排序规则,并提供相应的代码示例来帮助读者理解和选择适合自己需求的排序规则。排序规则......
  • 2024年计算机专业微信小程序选题推荐✅(最新、最全、最容易通过的选择)
    (文章目录)前言:heartpulse:博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌:heartpulse:......