今天就之前说过用sas的方法学python系列未完待续的话,给大家介绍一下在python中实现与sas函数一样效果的一些函数。
在sas中常用的compress
Sas:
datas;
a='000123000';
b=compress(a,'0');
run;
Python:
a='000123000'
b=a.strip('0')
在字符串中取特点字符的序号
Sas:
dataa;
b='123 E St,#2';
c=index(b,'#');
run;
Python:
b='123 E St,#2'
c=b.index('#')+1
字符串的拼接
Sas:
dataa;
a=' cat';
b='dog ';
x=cat(a,b);
run;
Python:
a=' cat'
b='dog '
c=[a,b]
x=''.join(c)
如果是sas函数catx,在python中可以用如下方式去实现:
x=(''.join(c)).strip('')
左对齐和右对齐
Sas:
dataa;
a=' cat ';
x=left(a);
y=right(a);
run;
Python:
a=' cat '
x=a.lstrip()
y=a.rstrip()
字符串长度
Sas:
dataa;
a='my cat';
x=length(a);
run;
Python:
a='my cat'
len(a)
首字母大写和全部大写
Sas:
dataa;
a='MyCat';
x=propcase(a);
y=upcase(a);
run;
Python:
a='MyCat'
x=a.capitalize()
y=a.upper()
字符串中字符的替换
Sas:
dataa;
a='6/16/99';
x=translate(a,'-','/');
b='Main Street';
y=tranwrd(b,'Street','St');
run;
Python:
a='6/16/99'
x=a.replace('/','-')
b='Main Street';
y=b.replace('Street','St')
对数字取整
Sas:
dataa;
a=0.3452;
x=int(a);
y=round(a,.01);
run;
Python:
a=0.3452
x=int(a)
y=round(a,2)
以上介绍的是一些数据处理方法,在sas中计算统计量也能在python中找到相应的实现。
计算一些简单的统计量
横向计算
Sas
dataa;
inputa b;
x=mean(a,b);
y=max(a,b);
z=min(a,b);
o=median(a,b);
p=std(a,b);
q=var(a,b);
datalines;
1 3
2 4
3 5
;
run;
Python
import numpy as np
a=pd.DataFrame({'a':[1,2,3],'b':[3,4,5]})
x=np.mean(a,1)
y=np.max(a,1)
z=np.min(a,1)
o=np.median(a,axis=1)
q=np.var(frame,axis=1)
x=np.mean(a,1)等价于x=np.mean(a,axis=1)
python中如果需要纵向计算统计量,只需要把上述代码的1改成0就可以了,在sas中的纵向计算统计量不用我多说了吧,就是一些平时用的sql函数,group by一下就好了。
来源|屁屁的sas数据分析
领取专属 10元无门槛券
私享最新 技术干货