使用Python的Dataframe取两列时间值相差一年的所有行方法

yipeiwu_com6年前Python基础

在使用Python处理数据时,经常需要对数据筛选。

这是在对时间筛选时,判断两列时间是否相差一年,如果是,则返回符合条件的所有列。

data原始数据:

data[map(lambda x:datetime.date(x.year-1,x.month,x.day),data['report_date'])==data['date_1y_ago']]
 company_id signal_code_x signal_value_x report_date signal_code_y signal_value_y report_date_last date_1y_ago
0  2154888 r_1002030000   0.62660 2015-09-30 r_1002030000   0.64145  2015-12-31 2014-12-31
1  2154888 r_1002030000   0.64145 2015-12-31 r_1002030000   0.64145  2015-12-31 2014-12-31
2  2154888 r_1002030000   0.60544 2015-03-31 r_1002030000   0.64145  2015-12-31 2014-12-31
3  2154888 r_1002030000   0.54911 2014-12-31 r_1002030000   0.64145  2015-12-31 2014-12-31
4  2154888 r_1002030000   0.61379 2015-06-30 r_1002030000   0.64145  2015-12-31 2014-12-31
5  1702887 r_1002030000   0.62173 2014-03-31 r_1002030000   0.51103  2015-03-31 2014-03-31
6  1702887 r_1002030000   0.55175 2014-12-31 r_1002030000   0.51103  2015-03-31 2014-03-31
7  1702887 r_1002030000   0.51103 2015-03-31 r_1002030000   0.51103  2015-03-31 2014-03-31
8  1702887 r_1002030000   0.58696 2014-06-30 r_1002030000   0.51103  2015-03-31 2014-03-31
9  13484491 r_1002030000   0.17658 2014-12-31 r_1002030000   0.41082  2015-12-31 2014-12-31
10 13484491 r_1002030000   0.41082 2015-12-31 r_1002030000   0.41082  2015-12-31 2014-12-31
11 13484491 r_1002030000   0.39220 2015-09-30 r_1002030000   0.41082  2015-12-31 2014-12-31

筛选后的数据:

company_id signal_code_x signal_value_x report_date signal_code_y signal_value_y report_date_last date_1y_ago
1  2154888 r_1002030000   0.64145 2015-12-31 r_1002030000   0.64145  2015-12-31 2014-12-31
7  1702887 r_1002030000   0.51103 2015-03-31 r_1002030000   0.51103  2015-03-31 2014-03-31
10 13484491 r_1002030000   0.41082 2015-12-31 r_1002030000   0.41082  2015-12-31 2014-12-31

以上这篇使用Python的Dataframe取两列时间值相差一年的所有行方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python的对象传递与Copy函数使用详解

1、对象引用的传值或者传引用 Python中的对象赋值实际上是简单的对象引用。也就是说,当你创建一个对象,然后把它赋值给另一个变量的时候,Python并没有拷贝这个对象,而是拷贝了这个对...

Python 3.6 性能测试框架Locust安装及使用方法(详解)

Python 3.6 性能测试框架Locust安装及使用方法(详解)

背景 Python3.6 性能测试框架Locust的搭建与使用 基础 python版本:python3.6 开发工具:pycharm Locust的安装与配置 点击“File”→“s...

从0开始的Python学习014面向对象编程(推荐)

从0开始的Python学习014面向对象编程(推荐)

简介 到目前为止,我们的编程都是根据数据的函数和语句块来设计的,面向过程的编程。还有一种我们将数据和功能结合起来使用对象的形式,使用它里面的数据和方法这种方法叫做面向对象的编程。 类和对...

对Python3中列表乘以某一个数的示例详解

在Python列表操作中:列表乘以某一个数,如list2 = list1 * 2 得到一个新的列表是list1的元素重复n次,且list1不改变。 但运行如下代码时,得到的新列表b中,b...

Python实现一个转存纯真IP数据库的脚本分享

Python实现一个转存纯真IP数据库的脚本分享

前言 之前写过很多关于扫描脚本的文章,一直都没写自己的扫描IP段是哪里搞来的,也会有朋友经常来问一些扫描经验,说实话我觉得这个工具并没有实际的技术含量,但是能提高工作效率,就共享出来给大...