前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >esproc vs python 5

esproc vs python 5

作者头像
py3study
发布于 2020-01-15 03:41:09
发布于 2020-01-15 03:41:09
2.2K00
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

1. 列出分期贷款明细

题目介绍:loan 表存储着贷款信息,包括贷款 ID,贷款总额、按月分期数、年利率。数据如下:

我们的目的是列出各期明细,包括:当期还款额、当期利息、当期本金、剩余本金。

esproc

A3:T.derive()新增两列月利率mRate=年利率/12,每期还款数mPayment=总利息/((1+月利率)的期数次幂)-1

A4:A.news(X;xi:Fi,…),根据序表/排列A,计算排列X后把计算后的字段合并到一个新的序表/排列,Fi为新字段名,xi为计算结果,Fi省略自动识别。当参数xi使用#i时,表示第i列,此时使用原列名。这里解释一下,将t的初始值设置为A3中的LoanAmt的值作为初始的本金,然后建立新表,其中利息interest=本金*月利率mRate,当期偿还的本金principal等于每期还款数payment-利息,剩余的本金=本金t-当期偿还的本金,然后把剩余的本金更新到t作为下一期的本金。

python:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import time

import numpy as np

import pandas as pd

s = time.time()

loan_data = pd.read_csv('C:\\Users\\Sean\\Desktop\\kaggle_data\\music_project_data\\loan.csv',sep='\t')

loan_data['mrate'] = loan_data['Rate']/(100*12)

loan_data['mpayment'] = loan_data['LoanAmt']*loan_data['mrate']*np.power(1+loan_data['mrate'],loan_data['Term']) \

                        /(np.power(1+loan_data['mrate'],loan_data['Term'])-1)

loan_term_list = []

for i in range(len(loan_data)):

    loanid = np.tile(loan_data.loc[i]['LoanID'],loan_data.loc[i]['Term'])

    loanid = np.tile(loan_data.loc[i]['LoanID'],loan_data.loc[i]['Term'])

    loanamt = np.tile(loan_data.loc[i]['LoanAmt'],loan_data.loc[i]['Term'])

    term = np.tile(loan_data.loc[i]['Term'],loan_data.loc[i]['Term'])

    rate = np.tile(loan_data.loc[i]['Rate'],loan_data.loc[i]['Term'])

    payment = np.tile(np.array(loan_data.loc[i]['mpayment']),loan_data.loc[i]['Term'])

    interest = np.zeros(len(loanamt))

    principal = np.zeros(len(loanamt))

    principalbalance  = np.zeros(len(loanamt))

    loan_amt = loanamt[0]

    for j in range(len(loanamt)):

        interest[j] = loan_amt*loan_data.loc[i]['mrate']

        principal[j] = payment[j] - interest[j]

        principalbalance[j] = loan_amt - principal[j]

        loan_amt = principalbalance[j]

    loan_data_df = pd.DataFrame(np.transpose(np.array([loanid,loanamt,term,rate,payment,interest,principal,principalbalance])),

                columns = ['loanid','loanamt','term','rate','payment','interest','principal','principalbalance'])

    loan_term_list.append(loan_data_df)

loan_term_pay = pd.concat(loan_term_list,ignore_index=True)

print(loan_term_pay)

e = time.time()

print(e-s)

新增两列mrate和mpayment,mpayment的计算方法和esproc的一样,大家可以参考。

初始化一个空列表用于存放每一个贷款客户的数据。

循环数据

Df.loc[i][x]取索引为i字段名为x的数据,tile(a,x),x是控制a重复几次的,结果是一个一维数组。

同样的方法获得贷款的'loanid','loanamt','term','rate','payment'的字段值,

初始化一个本金为loanamt的第一个元素。

for循环就是计算['interest','principal','principalbalance']这三个字段值的方法,思路和esproc的思路一样,只不过esproc支持动态计算而python只能通过构造这个for循环来完成。

Np.array()将list格式的列表转换成数组。由于这里的行表示的是每一个字段的值,np.transpose(a)是将数组a转置。pd.DataFrame()转成dataframe结构。

pd.concat()将每个贷款的分期信息合并成一个dataframe。

结果:

esproc

python

2.不规则月份统计

题目介绍:如果起始时间是 2014-01-10,则将 2014-01-10 到 2014-02-09 作为一组,将 2014-02-10 到 2014-03-9 作为一组。如果起始时间是 2014-01-31,则将 2014-02-27 作为一组,将 2014-02-28 到 2014-03-30 作为一组。数据如下:

我们的目的是统计出不规则月份的销售额AMOUNT。

esproc

我们首先需要设置网格参数startDate,endDate(程序——网格参数)

A3:筛选出指定时间的时间段

A4:按月计算开始时间和起始时间的间隔

A5:after(start,n)计算从开始时间以后的n天,@m选项表示按月计算,即开始时间以后的n个月。根据起始时间和日期间隔算出不规则月份的开始日期,并将起始时间插入第1位。

A6: A.pseg(x),返回x在A中的哪一段,缺省序列成员组成左闭右开的区间,A必须为有序序列。 x非A成员时,如果序列升序时x小于序列成员最小值(或序列降序时x大于序列成员最大值)则返回0;如果序列升序时x大于等于序列成员最大值(或序列降序时x小于等于序列成员最小值)则返回序列长度。将日期所在分组作为ID,销售额之和作为amount字段,当前日期作为date字段,形成序表。

python:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import time

import pandas as pd

import numpy as np

import datetime

s = time.time()

starttime_s = '2012-11-29'

endtime_s = '2013-11-11'

starttime = datetime.datetime.strptime(starttime_s, '%Y-%m-%d')

endtime = datetime.datetime.strptime(endtime_s, '%Y-%m-%d')

orders = pd.read_csv('C:\\Users\\Sean\\Desktop\\kaggle_data\\music_project_data\\order_date.csv',sep='\t')

orders['date'] = pd.to_datetime(orders['date'])

orders=orders[orders['date']>=starttime]

orders=orders[orders['date']<=endtime]

date_index = pd.date_range(start = starttime,end=endtime,freq='M')

interv = date_index.day

date_list = []

date_amount = []

for i in range(len(interv)):

    if starttime>=date_index[i]:

        date_list.append(date_index[i])

    else:

        date_list.append(starttime)

    starttime = starttime + datetime.timedelta(days=int(interv[i]))

    if len(date_list)>1:

        by = orders['date'].apply(lambda x:date_list[i]>x>=date_list[i-1])

        date_amount.append([orders[by]['AMOUNT'].sum(),date_list[i-1]])

by = orders['date'].apply(lambda x:x>=date_list[i])

date_amount.append([orders[by]['AMOUNT'].sum(),date_list[i]])

date_amount_df = pd.DataFrame(date_amount,columns=['amount','date'])

print(date_amount_df)

date_df = pd.Series(date_list)

e = time.time()

print(e-s)

小编没有找到pandas中自动生成不规则月份的方法,所以是自己写的,如果各位谁知道这种方法,还请不吝赐教。

指定起始时间和终止时间

datetime.datetime.strptime(str, '%Y-%m-%d')将字符串的日期格式转换为日期格式

pd.to_datetime()将date列转换成日期格式

筛选出指定时间段的数据

pd.date_range(start,end,freq)从开始时间到结束时间以freq的间隔生成时间序列,这里是按月生成。(这里作出说明,生成的序列成员是每个月的最后一天的日期)

date_index.day生成了这个序列中所有月份的天数

初始化两个list,date_list用来存放不规则日期的起始时间,date_amount用来存放各个时间段内的销售额和时间

循环月份总成的天数,如果起始时间晚于这个月的最后一天,则把这个月的最后一天放入date_list,否则把起始时间放入,然后更新起始时间为起始时间推迟该月的天数后的日期。

如果date_list中的日期数量大于1了,生成一个数组(判断数据中每个日期是否在该段时间段内,在为True,否则为False)。

筛选出在该时间段内数据中的销售额AMOUNT字段,求其和,并将其和日期放入初始化的date_amount列表中。

pd.DataFrame()生成结果

结果:

esproc

python

3.字段分段

题目介绍:库表data有两个字段,ID和ANOMOALIES,数据如下:

我们的目的是将ANOMOALIES字段按空格拆分为多个字符串,每个字符串和原ID字段形成新的记录。

esproc

A4:news函数的用法在第一例中已经解释过,这里不再赘述。

python:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import time

import pandas as pd

import numpy as np

s = time.time()

split_field = pd.read_csv('C:\\Users\\Sean\\Desktop\\kaggle_data\\music_project_data\\split_field.csv',sep='\t')

split_dict = split_field.set_index('ID').T.to_dict('list')

split_list = []

for key,value in split_dict.items():

    anomalies = value[0].split(' ')

    key_array = np.tile(key,len(anomalies))

    split_df = pd.DataFrame(np.array([key_array,anomalies]).T,columns=['ID','ANOMALIES'])

    #split_df = pd.DataFrame(np.transpose(np.array([key_array,anomalies])),columns=['ID','ANOMALIES'])

    split_list.append(split_df)

split_field = pd.concat(split_list,ignore_index=True)

print(split_field)

e = time.time()

print(e-s)

df.set_index(F)设置索引为F,df.T,将df的行列转置,df.to_dict(‘list’)将dataframe转换成字典,字段的key为df的字段名,value为df的字段值形成的list。

初始化一个空list,用于存放每个ANOMALIES字段拆分以后的dataframe

循环字典

将value的第一个元素按照空格切分,形成一个列表anomalies

根据这个列表长度复制key的值,形成数组key_array

将np.array([key_array,anomalies])将他们转换成数组,array.T,将数组转置(转置也可以用注释掉的那行代码np.traspose()函数),然后由pd.DataFrame()转成dataframe。

最后连接dataframe,得到结果。

结果:

esproc

python

4.增加增长率记录

esproc                     

A4:T.sort(x),按照x表达式排序,T.group(x)按照x表达式分组。A.run(x),针对序列/排列A中每个成员计算表达式x。T.record(A,k) 从T中指定位置k的记录开始,用A的成员依次修改T序表中记录的每个字段值,k省略时从最后一条开始增加记录。~表示当前分组,~(2)表示第二条记录即2015年的记录,~(1)表示2014年的记录。这里的过程是先按照Year字段排序,然后按照item分组,然后新增两条记录,分别是各种物品的增长率。

python:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import time

import pandas as pd

import numpy as np

s = time.time()

store_q = pd.read_csv('C:\\Users\\Sean\\Desktop\\kaggle_data\\music_project_data\\store_quantity.csv',sep='\t')

store_q.sort_values(by='Year',inplace = True)

store_q_g = store_q.groupby(by='item',as_index=False)

growth_rate_list=[]

for index,group in store_q_g:

    growth_rate = group['quantity']/group['quantity'].shift(1)-1

    growth_rate_list.append(['growth_rate',index,growth_rate.values[1]])

store_rate = pd.concat([store_q,pd.DataFrame(growth_rate_list,columns=['Year','item','quantity'])])    

print(store_rate)

e = time.time()

print(e-s)

df.sort_values(by,inplace),按照Year字段排序,更新到元数据中

df.groupby(by, as_index),按照item分组,不把item作为索引

初始化一个list用来存放各组的结果

循环分组,df.shift(1)是将df下移一行,(当前行/上一行)-1得到增长率。

由于只有两年的记录所以增长率的第二个元素即为需要的增长率。将growth_rate,index,增长率放入初始化的list中

pd.Dataframe()和pd.concat()大家应该很熟了,这里不再赘述了。

结果:

esproc

python

5.合并重复记录

题目介绍:该数据没有字段,第一行就是数据,数据如下:

我们的目的是过滤掉重复的记录,取出前6列,并重整第7,8两列,具体要求是:将wrok phone作为新文件第7列,将work email作为新文件第8列,如果有多个work phone或work email,则只取第一个。

esproc

A2:这里解释下f.import(),导入数据,@t是要把第一列作为字段名,@c是按照逗号分隔。

A3:按照_1,_2,_3,_4,_5,_6分组,每组选择一条记录select@1()是取序列中第一条符合条件的成员,如果第7个字段是work phone则取第八个字段的值作为work_phone字段,如果分组中第7个字段是work email则取第八个字段作为work_email字段。

python:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import time

import pandas as pd

import numpy as np

s = time.time()

merge_dup = pd.read_csv('C:\\Users\\Sean\\Desktop\\kaggle_data\\music_project_data\\merge_duplicate.csv',header=None)

merge_dup_g = merge_dup.groupby(by=[0,1,2,3,4,5],as_index=False)

work_arr = np.zeros(len(merge_dup.columns))

work_list = []

for index,group in merge_dup_g:

    work_arr = group.iloc[0].values

    work_arr[6] = work_arr[7]

    work_arr[7] = group[group[6]=='work email'].iloc[0].values[7]

    work_list.append(work_arr)

merge_dup = pd.DataFrame(work_list,columns=merge_dup.columns)

merge_dup.rename(columns={6:'work_phone',7:'work_email'},inplace=True)

print(merge_dup)

e = time.time()

print(e-s)

按照前6个字段进行分组

因为题目要求我们把work phone 和work email拿出来作为字段,所以源数据的字段数没变,df.columns得到df的字段名,np.zeros()初始化一个数组。

循环分组

取分组中第6个字段等于work phone的第一行的值,赋值给初始化的数组

修改数组第7个元素(索引是6)为数组的第8个元素(索引是7)

取分组中第6个字段等于work email的第一行的值的第8个元素(索引是7),赋值给数组的第8个元素(索引是7)。

将结果放入初始化的list中

转换成dataframe。

df.rename(columns,inplace)修改字段名,更新到源数据上。

结果:

esproc

python

6. 准备测试数据

esproc

A2: 定义一个数字,用来确定创建多少员工信息,这里准备的数据比较少,感兴趣的同学可以多准备些,这里是男员工名字45,女员工名字47,姓47,所以最多可以创建(45+47)*47=4324条员工信息,因此这个数字不能大于4324。

A8:男员工名字新增一个字段GENDER,赋值M

A10:合并男女员工的姓名

A11:根据STATEID为city表增加state表中的ABBR字段并设置成city表的ABBR字段

A12:按照A10表合并姓名和姓。A.conj()将序列和列。得到(45+47)*47个姓名和GENDER,sort(rand())将表随机排列,这是相对于news()的另一种写法,感兴趣的同学可以尝试改写成news()的写法。

A13:新建表,定义两个变量,birthday:18+rand(18),表示年龄在18至35周岁,用今年的年份减去年龄,得到出生的年份的一月一日。city:从city表中随机选取一条记录。定义变量是可以在计算的时候定义的,计算完成后赋值给变量,后续的计算可以直接使用这个变量,这使表达式显得简洁。最终的BIRTHDAY字段为从那年的1月1日,随机推迟那年的天数的时间,得到生日。city去city表的NAME字段,STATE去city表的ABBR字段。

python:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import time

import pandas as pd

import numpy as np

import datetime

import random

s = time.time()

data_quantity = 1000

m_name = pd.read_csv('C:\\Users\\Sean\\Desktop\\kaggle_data\\prepare_data\\M_name.txt',sep='\t')

f_name = pd.read_csv('C:\\Users\\Sean\\Desktop\\kaggle_data\\prepare_data\\F_name.txt',sep='\t')

s_name = pd.read_csv('C:\\Users\\Sean\\Desktop\\kaggle_data\\prepare_data\\S_name.txt',sep='\t')

cities = pd.read_csv('C:\\Users\\Sean\\Desktop\\kaggle_data\\prepare_data\\cities.txt',sep='\t')

states = pd.read_csv('C:\\Users\\Sean\\Desktop\\kaggle_data\\prepare_data\\states.txt',sep='\t')

m_name['GENDER'] = 'M'

f_name['GENDER'] = 'F'

name = pd.concat([m_name,f_name])

name['FULL_NAME']=1

s_name['FULL_NAME']=1

name = pd.merge(name,s_name,on='FULL_NAME')

name['FULL_NAME']=name['NAME']+' '+name['S_name']

city_state = pd.merge(cities[['NAME','STATEID']],states[['ABBR','STATEID']],on='STATEID')

birth_list = []

city_list = []

state_list = []

for i in range(data_quantity):

    age = random.randint(18,35)

    birth_y = datetime.datetime.today().year-age

    birthday = datetime.datetime(birth_y,1,1).date()

    year_days = int(datetime.date(birth_y,12,31).strftime('%j'))

    birthday = birthday + datetime.timedelta(days=random.randint(0,year_days))

    birth_list.append(birthday)

    rand_index = random.randint(0,len(city_state)-1)

    city_list.append(city_state['NAME'].loc[rand_index])

    state_list.append(city_state['ABBR'].loc[rand_index])

rand_arr = np.random.randint(0,len(name),data_quantity)

person = name[['FULL_NAME','GENDER']].loc[rand_arr]

person['ID']=np.arange(data_quantity)

person['BIRTHDAY'] = birth_list

person['CITY'] = city_list

person['STATE'] = state_list

person = person.rename(columns={'FULL_NAME':'NAME'}).reset_index(drop=True)

print(person[['ID','NAME','GENDER','BIRTHDAY','CITY','STATE']])

e = time.time()

print(e-s)

新增字段,纵向和横向合并dataframe,我们在前边的例子已经多次用到了,这里不再赘述

简单解释一下姓名合并的问题,由于两个dataframe没有共同的字段作为key,所以我们造了一个字段FULL_NAME,赋值为1,只为进行merge。

定义三个list,分别用来生成BIRTHDAY,CITY,STATE列

把年龄定义在18-35之间,由年龄生成随机的生日,然后放入定义好的list中

CITY和STATE字段的值是利用loc[]函数,随机取,并放入定义好的list中

定义一个数组,随机生成name数据的索引

通过loc[rand_arr]函数,取随机的1000个,生成FULL_NAME和GENDER字段。

np.arange(n)生成n个元素的一维数组,作为ID字段。

然后把刚才的三个list赋值给BIRTHDAY,CITY,STATE。

rename()将FULL_NAME字段名改为NAME,重新设置索引并将原来的索引丢弃。

生成最终结果。

结果:

esproc

python

小结:本节我们继续计算一些网上常见的题目,由于pandas依赖于另一个第三方库numpy,而numpy的数组元素只能通过循环一步一步进行更新,esproc的循环函数如new()、select()等都可以动态更新字段值,使得代码简单。在第二例中,日期处理时,esproc可以很轻松的划分出不规则的月份,并根据不规则月份进行计算。而python划分不规则月份时需要额外依赖datetime库,还要自行根据月份天数划分,实在是有些麻烦。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python Pandas PK esProc SPL,谁才是数据预处理王者?
做数据分析和人工智能运算前常常需要大量的数据准备工作,也就是把各种数据源以及各种规格的数据整理成统一的格式。因为情况非常复杂多样,很难有某种可视化工具来完成此项工作,常常需要编程才能实现。
不吃西红柿
2022/09/26
3.5K0
esproc vs python 4
A3:用ORDERDATE的年份和月份分组,并将该列命名为y,m,同时计算该组的销售量
py3study
2020/01/14
2K0
Python 数据分析学习笔记
一、基本语法 [1507772432114_7239_1507772402948.jpg] 资料地址:http://www.icoolxue.com/album/show/113 1)python3新增特性: A: print()变化 B: 新增bytes类型,可以与str进行互换,以b字母作为前缀 C: 新增format()进行格式化处理 D: dict里面删除了iterkeys(),itervalues(), iteritems(), 新增keys(), values(), it
1039778
2018/01/15
3.3K0
Python 数据分析学习笔记
Pandas爬取历史天气数据
Pandas是一款开放源码的BSD许可的Python库,为Python编程语言提供了高性能,易于使用的数据结构和数据分析工具。
fireWang
2019/05/14
2.4K0
Pandas爬取历史天气数据
python生成所需特征参数
生成抽卡消费列表,有n个充钱档次,没人会随机抽m次,可设置人数以及抽卡率,抽卡次数需要符合正态分布
用户11196524
2024/11/11
570
Python信贷数据处理与初步分析(ZIP解压)
#!/usr/bin/python # coding=utf-8 ''' @author: lenovo @software: 3.6 PyCharm @file: 8W信贷数据处理.py @time: 20170531 @function:Credit data processing and preliminary analysis 信贷数据处理与初步分析 @edition :1.0 ''' #导入模块 from __future__ import division, pr
学到老
2018/03/16
1K0
​Kaggle M5 Forecasting:传统预测方法与机器学习预测方法对比
本文使用的数据集来自 kaggle:M5 Forecasting — Accuracy。该数据集包含有 California、Texas、Wisconsin 三个州的产品类别、部门、仓储信息等。基于这些数据,需要预测接下来 28 天的每日销售量。
deephub
2020/05/09
2K0
​Kaggle M5 Forecasting:传统预测方法与机器学习预测方法对比
基于xgboost的风力发电机叶片结冰分类预测
xgboost中文叫做极致梯度提升模型,官方文档链接:https://xgboost.readthedocs.io/en/latest/tutorials/model.html
潇洒坤
2018/10/09
1.6K0
基于xgboost的风力发电机叶片结冰分类预测
【Python】这25个Pandas高频实用技巧,不得不服!
今天给大家准备了25个pandas高频实用技巧,让你数据处理速度直接起飞。文章较长,建议收藏!
黄博的机器学习圈子
2022/11/07
6.7K0
【Python】这25个Pandas高频实用技巧,不得不服!
Python Pandas 用法速查表
设置列名dataframe.columns=['col1','col2','col3']
白墨石
2021/01/13
1.8K0
从Excel到Python:最常用的36个Pandas函数
本文涉及pandas最常用的36个函数,通过这些函数介绍如何完成数据生成和导入、数据清洗、预处理,以及最常见的数据分类,数据筛选,分类汇总,透视等最常见的操作。
统计学家
2019/12/05
11.6K0
从Excel到Python:最常用的36个Pandas函数
这几个方法颠覆你对Pandas缓慢的观念!
作者:xiaoyu 知乎:https://zhuanlan.zhihu.com/pypcfx 介绍:一个半路转行的数据挖掘工程师
1480
2019/07/15
2.9K0
这几个方法颠覆你对Pandas缓慢的观念!
新人赛《金融风控贷款违约》避坑指南!
本文以天池的金融风控赛为背景,梳理了金融风控的整个实践流程,帮助大家避坑学习。赛事的场景是个人信贷,要求选手根据贷款申请人的数据信息预测其是否有违约的可能,以此判断是否通过此项贷款,这个问题在现实的风控场景中很常见,属于典型的分类问题。另外,准入模型,评分卡模型皆是属于这个范畴。
Datawhale
2020/10/23
3K0
新人赛《金融风控贷款违约》避坑指南!
Pandas 2.2 中文官方教程和指南(二十五·二)
将一个以小时为列、天为行的矩阵转换为连续的行序列,形成时间序列。如何重新排列 Python pandas DataFrame?
ApacheCN_飞龙
2024/05/24
1930
Pandas 2.2 中文官方教程和指南(二十五·二)
搞多层 json,SPL 才是专业的
业务数据经常存在层次关系,比如订单包含日期、客户和订单明细,订单明细又包含价格、数量、产品,产品则包含名称和分类。
朱迪
2025/03/28
640
20 个短小精悍的 pandas 骚操作!
本次为大家整理了一个pandas骚操作操作的大集合,共20个功能,个个短小精悍,一次让你爱个够。
小F
2021/08/20
1.1K0
20 个短小精悍的 pandas 骚操作!
【python】动态可视化+爬虫(超燃超简单)
这里推荐个动态可视化库pynimate,2023年还在持续更新中。调用他们动态可视化方法,实现起来不要太简单。
读书猿
2024/02/05
1580
【python】动态可视化+爬虫(超燃超简单)
Pandas入门2
对于DataFrame,对齐会同时发生在行和列上,两个DataFrame对象相加后,其索引和列会取并集,缺省值用NaN。
潇洒坤
2018/09/10
4.2K0
Pandas入门2
用 Pandas 进行数据处理系列 二
获取行操作df.loc[3:6]获取列操作df['rowname']取两列df[['a_name','bname']] ,里面需要是一个 list 不然会报错增加一列df['new']=list([...])对某一列除以他的最大值df['a']/df['a'].max()排序某一列df.sorted_values('a',inplace=True,ascending=True) , inplace 表示排序的时候是否生成一个新的 dataFrame , ascending=True 表示升序,默认为升序,如果存在缺失的补值( Nan ),排序的时候会将其排在末尾
zucchiniy
2019/10/30
8.2K0
python | 简单的数据分析
ID object Gender object City object Monthly_Income int64 DOB object Lead_Creation_Date object Loan_Amount_Applied float64 Loan_Tenure_Applied float64 Existing_EMI float64 Employer_Name object Salary_Account object Mobile_Verified object Var5 int64 Var1 object Loan_Amount_Submitted float64 Loan_Tenure_Submitted float64 Interest_Rate float64 Processing_Fee float64 EMI_Loan_Submitted float64 Filled_Form object Device_Type object Var2 object Source object Var4 int64 LoggedIn int64 Disbursed int64 dtype: object
努力在北京混出人样
2019/02/18
6350
推荐阅读
相关推荐
Python Pandas PK esProc SPL,谁才是数据预处理王者?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文