Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >python中的非NaN值切片

python中的非NaN值切片
EN

Stack Overflow用户
提问于 2020-07-07 03:38:10
回答 4查看 438关注 0票数 0

我是python新手,希望得到一些帮助!我有一个名为“结果”的数据格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
start       end         rf1 rf2 rf3
01-01-2008  10-01-2008  nan 12  nan
02-01-2008  11-01-2008  nan 16  nan
03-01-2008  12-01-2008  32  18  18

我想要一个不是NaN的每一行中的rfs的列表。请注意,我的前两列不是索引。我尝试了下面的代码,但无法得到答案:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
result_2=result.dropna(axis=1,how='all')

基本上,我想要一个日期列表,对于这些日期,rfs不是NaN。对于第一行中的ex,输出应该给我开始日期、结束日期和‘rf3 2’,类似地,在最后一行中,我的输出应该给我开始日期,结束日期,‘rf3 1’,‘rf3 2’,'rf3‘。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-07-07 03:44:15

您可以使用stackrfX列进行过滤,对索引进行groupby,并从结果组构建列表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.filter(regex=r'rf\d').stack().groupby(level=0).agg(list)

0                [12.0]
1                [16.0]
2    [32.0, 18.0, 18.0]
dtype: object

或者使用列表理解:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[[i for i in row if i==i] for row in df.filter(regex=r'rf\d').values.tolist()]
 [[12.0], [16.0], [32.0, 18.0, 18.0]]

或者如果你需要列名。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df['vals'] = df.filter(regex=r'rf\d').stack().reset_index(level=1)\
                                     .groupby(level=0).level_1.agg(list)

print(df)

       start        end   rf1  rf2   rf3             vals
0 2008-01-01 2008-10-01   NaN   12   NaN            [rf2]
1 2008-02-01 2008-11-01   NaN   16   NaN            [rf2]
2 2008-03-01 2008-12-01  32.0   18  18.0  [rf1, rf2, rf3]
票数 4
EN

Stack Overflow用户

发布于 2020-07-07 03:51:19

你可以使用pd.meltjoin

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = (
    pd.melt(df, id_vars=["start", "end"])
    .dropna()
    .groupby(["start", "end"])["variable"]
    .agg(list)
    .to_frame("vals")
)

df1 = df.set_index(['start','end']).join(s)

print(df1)

                        rf1  rf2   rf3             vals
start      end                                         
2008-01-01 2008-10-01   NaN   12   NaN            [rf2]
2008-02-01 2008-11-01   NaN   16   NaN            [rf2]
2008-03-01 2008-12-01  32.0   18  18.0  [rf1, rf2, rf3]
票数 3
EN

Stack Overflow用户

发布于 2020-07-07 04:17:19

使用the.select_dtypes排除不需要的列并查找剩余满足条件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df2=df.select_dtypes(exclude='object').notna()#Excludes the dates

将列转换为numpy数组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
t=df2.columns.to_numpy()

生成一个列,布尔值被选中为null并连接到df。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.join(pd.DataFrame({'listofcols':[t[i] for i in df2.to_numpy()]}))

       start         end   rf1  rf2   rf3       listofcols
0  01-01-2008  10-01-2008   NaN   12   NaN            [rf2]
1  02-01-2008  11-01-2008   NaN   16   NaN            [rf2]
2  03-01-2008  12-01-2008  32.0   18  18.0  [rf1, rf2, rf3]

如果感兴趣的是一个通用列表或所有在dataframe中不是空的列。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.notna().any(0).index.tolist()#find any nan on taxis=0 and add to list


 ['start', 'end', 'rf1', 'rf2', 'rf3']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62774428

复制
相关文章
vue导入外部css不污染全局
导入外部css <style src="./main.css" scoped> </style> 导入外部less 需要先安装less插件 npm install less less-loader <style src="./main.less" lang="less" scoped> </style>
明知山
2020/12/14
2.1K0
在WebKit中并行加载外部脚本译:
作者:Tony Gentilcore 原文:http://webkit.org/blog/1395/running-scripts-in-webkit/ WebKit 正式版已经正式支持HTML5中<script>标签的 async 和 defer 属性了。如此一来,我们就能在不阻塞网页中其它元素下载的情况下,以异步方式下载JavaScript,从而大大提高了网页加载速度。 正常情况下,网页分析器检测到有外部脚本时,会暂停解析,并发起一个请求去下载该脚本,一直到这个脚本完全下载并执行之后解析才会继续进行。
小李刀刀
2018/03/02
1.8K0
话单查询记录写入到文件-shell脚本
shellcatalog="/root/nullhuadan" # 脚本工作目录
eisc
2021/02/10
5580
在VUE中怎么全局引入sass文件
在使用vue开发SPA应用中,我们经常需要在一个或多个scss文件中定义公共变量或者mixin亦或是很多通用的function,而且不希望在每个vue文件中都去@import,针对这种情况,可以使用下面的方法添加全局引入的sass文件,使这些样式或者方法可以被打包到全局的样式文件中。
fastmock
2022/07/13
1.4K0
在vue中引入外部的css文件「建议收藏」
使用@import引入样式文件,就算加scoped,其它没有引入的模块还是可以访问到你的样式,如果某个组件的类名一致,则就会被污染到。 如果不想被污染,修改引入方式
全栈程序员站长
2022/11/08
5.1K0
OpenCV300 CMake生成project在项目过程中的问题
2015年6一个月4日本。OpenCV官网上面给出了最新版本号OpenCV。这是:3.0.0版本号,http://opencv.org/
全栈程序员站长
2022/07/06
5340
OpenCV300 CMake生成project在项目过程中的问题
在Shell脚本中逐行读取文件的命令方法
为了演示,在此创建一个名为“ mycontent.txt”的文本文件,文件内容在下面:
用户7639835
2021/12/03
9.3K0
11.22 访问日志不记录静态文件
访问日志不记录指定类型的文件目录概要 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 把虚拟主机配置文件改成如下: <VirtualHost *:80> DocumentRoot "/data/wwwroot/www.123.com" ServerName www.123.com ServerAlias 123.com SetEnvIf Request_URI ".*\.gif$" img SetEnvIf Request_URI ".*\.j
运维小白
2018/02/06
1K0
11.22 访问日志不记录静态文件
Apache访问日志+不记录静态文件
Apache访问日志 : 访问日志:顾名思义就是当有人访问咱们的站点,就会被记录些信息!其实这个还是蛮重要,尤其是站点受到攻击,直接命令的日志可以让我们迅速找到攻击者IP的规律! 根据咱们之前的配置,访问日志如下: <VirtualHost *:80> DocumentRoot "/data/wwwroot/test3.com" ServerName www.test3.com ServerAlias www.haha.com #<Directory /data/wwwroot
老七Linux
2018/05/09
1.8K0
dotnet publish 不生成pdb文件
随着项目的体积越来越大,导致publish的时候文件越来越多,然而生产环境中其实pdb调试文件并没有什么作用(remote debug)除外,所以也就灵机一动想着是否可以不生成呢?
全栈程序员站长
2022/08/26
1.2K0
python在租房过程中的应用
总第84篇 01|背景介绍: 租房是再普遍不过的一件事情了,我们在租房过程中常考量的两个因素是出租房离公司的远近以及价格,而我们一般都会去链家上看相应的信息,但是链家网只有价格没有距离,对于我这种对帝都不是很熟的人,对各个区域的位置是一脸懵逼,所以我就想着能不能自己计算距离呢,后来查了查还真可以。具体做法就是先获取各个出租房所在地的经纬度和你公司所在地的经纬度,然后进行计算即可。 我们在获取经纬度之前首先需要获取各个出租房所在地的名称,这里获取的方法是用爬虫对链家网上的信息进行获取的。关于爬虫可以先看看
张俊红
2018/04/11
1.2K0
python在租房过程中的应用
解决shell脚本中"source /etc/profile"重载配置文件不生效的问题
最近在通过shell脚本在Linux系统安装Java或Python的过程中,遇到了shell脚本中的“source /etc/profile”无法生效的问题,虽然也可以在执行完脚本后再次执行“source /etc/profile”来使配置文件生效,但未免有些繁琐,而我又比较懒,想彻底弄清其原因及解决办法,从而一劳永逸。以下为本次解决问题的实践记录:
大刚测试开发实战
2022/11/14
9.2K0
解决shell脚本中"source /etc/profile"重载配置文件不生效的问题
用工具脚本生成模板代码记录
这次项目的需求有大概20个命令,需要根据协议来实现不同payload的编码和解码函数,抽象出来每个命令有相似的代码结构,如果每行都用键盘敲打确实是低效,所以考虑用脚本先生成一个代码模板,然后逐个填空实现对应的方法,也算是一个小的尝试!
呱牛笔记
2023/05/02
2580
用工具脚本生成模板代码记录
vue文件中引入外部js
1.在项目的入口文件中(app.js)定义remoteScript标签 Vue.component('remote-script', { render: function (createElement) { var self = this; return createElement('script', { attrs: { type: 'text/javascript', src
lin_zone
2018/08/15
23K2
Codeigniter文件上传类型不匹配错误
Codeigniter的文件上传类方便了我们使用PHP来处理文件上传的操作,使用起来非常简单,如下:
大江小浪
2018/07/24
2.4K0
【shell脚本】$ 在shell脚本中的使用
注释:$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数
码缘
2019/07/01
6.3K0
在Salesforce中动手创建页面布局和记录类型
通过官方的工作册和教程来学习Salesforce很好,但对于我个人来讲我很难抽出时间去看这些材料,因为它不是我的公司的需求,并且从中学到的并不是我在日常工作中可以使用的东西。
臭豆腐
2019/04/16
2.5K0
在Salesforce中动手创建页面布局和记录类型
MyEclipse无法编译,不生成class文件
还有一种原因是工程中的jdk没有导入正确;在工程中选中jre system Library 右键build path configure build path 把jre移除 然后点击 add library 选中 jre sysrem library 将本地的jdk路径找到 确定就ok了
西门呀在吹雪
2020/11/09
1.5K0
ASP.NET中绑定枚举类型
在项目开发中好多地方用了枚举,要把枚举显示到下拉列表框中我们平常的方法就是在下拉列表控件中一个一个添
Java架构师必看
2021/03/22
1K0
新能源汽车生产过程中的智能制造技术
智能制造是在基于信息技术和先进制造技术的基础上发展起来的一种综合性生产技术,智能制造贯穿于生产环节的设计、过程、管理和售后服务多个作业环节。
yansunxer
2022/10/13
5900
新能源汽车生产过程中的智能制造技术

相似问题

在类型记录中扩展角全局对象

33

更新到角9和类型记录3.8.3后生成错误

13

在角6/类型记录中声明全局变量

10

在角/类型记录中单击后动态绑定

10

角度:注塑在生产过程中不生成。

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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