pandas DataFrame 根据多列的值做判断,生成新的列值实例

yipeiwu_com7年前Python基础

环境:Python3.6.4 + pandas 0.22

主要是DataFrame.apply函数的应用,如果设置axis参数为1则每次函数每次会取出DataFrame的一行来做处理,如果axis为1则每次取一列。

如代码所示,判断如果城市名中含有ing字段且年份为2016,则新列test值赋为1,否则为0.

import numpy as np 
import pandas as pd 
 
data = {'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Hangzhou', 'Chongqing'], 
 'year': [2016,2016,2015,2017,2016, 2016], 
 'population': [2100, 2300, 1000, 700, 500, 500]} 
frame = pd.DataFrame(data, columns = ['year', 'city', 'population', 'debt']) 
 
def function(a, b): 
 if 'ing' in a and b == 2016: 
 return 1 
 else: 
 return 0 
print(frame, '\n') 
frame['test'] = frame.apply(lambda x: function(x.city, x.year), axis = 1) 
print(frame) 

运行结果如下:

另外Series类型也有apply函数,用法示例如下:

import numpy as np 
import pandas as pd 
 
data = {'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Hangzhou', 'Chongqing'], 
 'year': [2016,2016,2015,2017,2016, 2016], 
 'population': [2100, 2300, 1000, 700, 500, 500]} 
frame = pd.DataFrame(data, columns = ['year', 'city', 'population', 'debt']) 
 
print(frame, '\n') 
frame['panduan'] = frame.city.apply(lambda x: 1 if 'ing' in x else 0) 
print(frame) 

运行结果如下:

以上这篇pandas DataFrame 根据多列的值做判断,生成新的列值实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python使用scipy模块实现一维卷积运算示例

本文实例讲述了Python使用scipy模块实现一维卷积运算。分享给大家供大家参考,具体如下: 一 介绍 signal模块包含大量滤波函数、B样条插值算法等等。下面的代码演示了一维信号的...

解决Pycharm无法import自己安装的第三方module问题

解决Pycharm无法import自己安装的第三方module问题

又遇到与pycharm配置有关的问题。pycharm无法import自己安装的第三方库,好神奇啊,这个可是在pycharm下安装的地三方module。 那么我的配置问题出在哪里? 打开F...

pyqt实现.ui文件批量转换为对应.py文件脚本

大家都知道,在通过Pyqt4的designer工具创建界面.ui文件后需要手动cmd命令将.ui文件转换为.py之后才能进行事件的编写,如果遇到一次创建很多.ui文件一个个转换会很麻烦,...

对python中数据集划分函数StratifiedShuffleSplit的使用详解

对python中数据集划分函数StratifiedShuffleSplit的使用详解

文章开始先讲下交叉验证,这个概念同样适用于这个划分函数 1.交叉验证(Cross-validation) 交叉验证是指在给定的建模样本中,拿出其中的大部分样本进行模型训练,生成模型,留小...

Python实现自动上京东抢手机

本文实例为大家分享了Python自动上京东抢手机的具体代码,供大家参考,具体内容如下 上次抢荣耀V9,被京东给恶心到了,所以就写了个简单的Python来自动抢V9。虽然用的是比较蠢的方法...