Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用条件在pandas数据框中定位列值

使用条件在pandas数据框中定位列值
EN

Stack Overflow用户
提问于 2020-08-14 07:29:05
回答 2查看 197关注 0票数 2

我们有一个数据帧(df_source):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Unnamed: 0  DATETIME    DEVICE_ID   COD_1   DAT_1   COD_2   DAT_2   COD_3   DAT_3   COD_4   DAT_4   COD_5   DAT_5   COD_6   DAT_6   COD_7   DAT_7
0   0   200520160941    002222111188    35  200408100500.0  12  200408100400    16  200408100300    11  200408100200    19  200408100100    35  200408100000    43  
1   19  200507173541    000049000110    00  190904192701.0  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
2   20  200507173547    000049000110    00  190908185501.0  08  190908185501    NaN NaN NaN NaN NaN NaN NaN NaN NaN 
3   21  200507173547    000049000110    00  190908205601.0  08  190908205601    NaN NaN NaN NaN NaN NaN NaN NaN NaN 
4   22  200507173547    000049000110    00  190909005800.0  08  190909005800    NaN NaN NaN NaN NaN NaN NaN NaN NaN 
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 
159 775 200529000843    000049768051    40  200529000601.0  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
160 776 200529000843    000049015792    00  200529000701.0  33  200529000701    NaN NaN NaN NaN NaN NaN NaN NaN NaN 
161 779 200529000843    000049180500    00  200529000601.0  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
162 784 200529000843    000049089310    00  200529000201.0  03  200529000201    61  200529000201    NaN NaN NaN NaN NaN NaN NaN 
163 786 200529000843    000049768051    40  200529000401.0  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 

我们计算了一个子集的values_cont,一个dict

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
v_subset = ['COD_1', 'COD_2', 'COD_3', 'COD_4', 'COD_5', 'COD_6', 'COD_7']
values_cont = pd.value_counts(df_source[v_subset].values.ravel())

我们获得的结果(值,计数器):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
00    134
08     37
42     12
40     12
33      3
11      3
03      2
35      2
43      2
44      1
61      1
04      1
12      1
60      1
05      1
19      1
34      1
16      1

现在,问题是:

如何定位counter对应的列中的值,例如:

如何定位:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 df['DEVICE_ID']  # corresponding with values ('00') and  counter ('134')
 df['DEVICE_ID']  # corresponding with values ('08') and  counter ('37')

 ...

 df['DEVICE_ID']  # corresponding with values ('16') and  counter ('1')
EN

回答 2

Stack Overflow用户

发布于 2020-08-14 07:45:10

  • 我相信你需要DataFrame.meltID的聚合连接和计数的GroupBy.size
  • 这个实现将产生一个数据帧,其中包含一个列(value)的CODES,所有相关的< code >D9,以及与每个代码相关的ids计数。在question.

中,

  • values_cont的替代方案

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
v_subset = ['COD_1', 'COD_2', 'COD_3', 'COD_4', 'COD_5', 'COD_6', 'COD_7']

df = (df_source.melt(id_vars='DEVICE_ID', value_vars=v_subset)
               .dropna(subset=['value'])
               .groupby('value')
               .agg(DEVICE_ID = ('DEVICE_ID', ','.join), count= ('value','size'))
               .reset_index())
print (df)
   value                                          DEVICE_ID  count
0     00  000049000110,000049000110,000049000110,0000490...      7
1     03                                       000049089310      1
2     08             000049000110,000049000110,000049000110      3
3     11                                       002222111188      1
4     12                                       002222111188      1
5     16                                       002222111188      1
6     19                                       002222111188      1
7     33                                       000049015792      1
8     35                          002222111188,002222111188      2
9     40                          000049768051,000049768051      2
10    43                                       002222111188      1
11    61                                       000049089310      1


# print DEVICE_ID for CODES == '03'
print(df.DEVICE_ID[df.value == '03'])

[out]:
1    000049089310
Name: DEVICE_ID, dtype: object

根据与Pandas: Boolean Indexing相关的问题,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# to return all rows where COD_1 is '00'
df_source[df_source.COD_1 == '00']

# to return only the DEVICE_ID column where COD_1 is '00'
df_source['DEVICE_ID'][df_source.COD_1 == '00']
票数 1
EN

Stack Overflow用户

发布于 2020-08-14 07:47:37

您可以使用df.iloc搜索基于列匹配的行。然后,您可以从该行中选择感兴趣的列并输出它。也许有一种更具蟒蛇风格的方法来做到这一点。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df2=df.iloc[df['COD_1']==00]

df3=df2.iloc[df2['DAT_1']==134]

df_out=df3.iloc['DEVICE_ID']

.iloc上有更多信息:https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63408380

复制
相关文章
React中利用Error Boundaries实现错误捕捉
错误边界是一种 React 组件,这种组件可以捕获发生在其子组件树任何位置的 JavaScript 错误,并打印这些错误,同时展示降级 UI,而并不会渲染那些发生崩溃的子组件树。错误边界可以捕获发生在整个子组件树的渲染期间、生命周期方法以及构造函数中的错误
henu_Newxc03
2022/05/18
7770
vue-axios-vuex-全家桶
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。简单来说就是前端最火最简单的一个http请求解决方案。
达达前端
2021/09/08
2.7K0
vue,vue-router,vuex,axios整合
*vue官网:https://cn.vuejs.org/ vue-router官网:https://router.vuejs.org/zh-cn/ vuex官网:https://vuex.vuejs.org/zh-cn/ axios中文说明:https://www.kancloud.cn/yunye/axios/234845 vue-cli建立项目 npm install -g vue-cli 全局安装vue脚手架 vue init webpack-simple project-name 使用w
conanma
2021/11/03
1.2K0
像专业人士一样捕捉 async/await 中的错误
请参考以下代码片段,我们在其中有多个 try catch 块,带有 await 功能。
前端小智@大迁世界
2023/08/16
2650
像专业人士一样捕捉 async/await 中的错误
安卓程序崩溃错误捕捉
在开发安卓程序时,本地测试没任何问题,但去到客户处不是这里麻烦就是哪里不行。最后还来个程序崩溃。。最令人头疼的就是崩溃,因为程序的崩溃总是悄然无息的,有时候根本都没办法进行复现处理,,经过一段的摸索后,总算发现安卓有个程序崩溃前的接口(CrashHandler)在崩溃前会执行,这样就能很好的捕获到错误了。
谭广健
2019/11/13
1.3K0
2.封装axios、本地存储,安装vuex、element
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 Element 一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库
RtyXmd
2018/08/30
1.4K0
2.封装axios、本地存储,安装vuex、element
axios django CSRF 403错误
使用axios直接post django的接口的时候会提示CSRF 403错误 可以在post的data中转入csrftoken 也可以给单个方法关闭 from django.views.decorators.csrf import csrf_exempt,csrf_protect @csrf_exempt def test(request): pass
小贝壳
2020/03/05
1.4K0
Vuex中的mapGetters
mapGetters([‘language’,’token‘]) 参数是个数组,数组里是你想要映射的getters里的值
全栈程序员站长
2022/07/01
5400
webgis中捕捉功能的实现
本文以openlayers为例,结合turf.js讲一下webgis中绘制和编辑时如何实现捕捉功能。
牛老师讲GIS
2021/12/06
7720
webgis中捕捉功能的实现
axios封装错误请求函数
在使用axios作为请求工具时我们通常不在catch中对错误操作进行处理,我们可以将请求错误的操作放在响应拦截器中进行,日常开发只需要在then做业务即可。
用户6256742
2022/07/06
1.2K0
JS 拦截/捕捉 全局错误 全局Error onerror
 移动Web开发过程中,在真机测试时,往往会遇到一些PC调试无法重现的问题,这时候我们需要在手机上拦截错误,并有相应的输出。 公司和网上都有类似的工具/类库,但如果纯粹一个简单的调试,或许不需要引入工具或类库,我们只需要知道全局拦截的原理。 其实很简单,就是window.onerror 语法: onerror=handleErr function handleErr(msg,url,l) { //Handle the error here return true or false } 浏览器是否显示标准的
用户1258909
2018/07/03
4.2K0
如何使用Vue.js和Axios来显示API中的数据
Vue.js是一个用于构建用户界面的前端JavaScript框架。 它的设计从头开始逐步采用,并与其他图书馆或现有项目完美集成。 这使它非常适合小型项目以及与其他工具和库一起使用的复杂单页应用程序。
子润先生
2021/06/15
8.8K0
Vuex中的核心方法
Vuex是一个专为Vue.js应用程序开发的状态管理模式,其采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。每一个Vuex应用的核心就是store仓库,store基本上就是一个容器,它包含着你的应用中大部分的状态state。
WindRunnerMax
2020/12/01
2.2K0
(五)Vuex 中的Actions
actions 和 mutations 整体上是一样的,但是actions 支持异步代码 mutations 只支持同步代码,另外 actions 不会直接修改全局状态 而是出发 mutations 来修改全局状态
老怪兽
2023/02/22
4240
Vue中的Vuex详解
        C.存储在vuex中的数据是响应式的,当数据发生改变时,页面中的数据也会同步更新
陶然同学
2023/02/27
1.4K0
Vue中的Vuex详解
uniapp 中 vuex 的使用
uniapp 内置了 vuex,不需像 vue 脚手架那样里通过 npm 安装了,我们只需要引用就行了
很酷的站长
2022/12/04
1.4K0
uniapp 中 vuex 的使用
让你的博客在QQ中以XML形式显示
1、复制下面链接,把后面域名更为成自己的 (红色区域,注意域名前面HTTPS),复制到浏览器打开 。
SingYi
2022/07/13
1.7K0
让你的博客在QQ中以XML形式显示
Vuex中的核心方法
Vuex是一个专为Vue.js应用程序开发的状态管理模式,其采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。每一个Vuex应用的核心就是store仓库,store基本上就是一个容器,它包含着你的应用中大部分的状态state。
WindRunnerMax
2020/11/30
2K0
vue中axios的封装
5. 封装post, get 请求 (此示例没有封装,可根据项目情况而定,因为封装后,对于一些特殊接口设置不是太灵活,需要我们项目没有选择封装,如果请求方法比较单一的,可以考虑封装)
用户9914333
2022/07/21
1.3K0
vue中axios的封装
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
大龄老码农-昊然
2021/05/13
3.4K0
vue中axios的封装

相似问题

Axios捕捉承诺错误

11

Vuex模块CORS中的Nuxtjs Axios错误

10

Vuex动作-返回Axios返回错误

10

如何从Vuex操作中的axios函数返回错误消息以调度catch(错误)?

29

无法捕捉axios react.js中的错误

34
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文