代码学习(1)

2020-02-08 14:28:37

项目地址:https://www.kesci.com/home/project/5d03909fe727f8002c54f1ff

1 #调整展示列顺序
2 columns = ['区域', '小区', '面积', '户型', '总价/万元', '单价', '产权', '年限', '关注', '挂牌时间', '朝向', '楼层', '装修情况', '房屋编码']
3 
4 df2 = df[columns]

#修改列名, inplace=True: 在原数据集上修改
df2.rename(columns={'单价': '元/平米'}, inplace=True)
df2.rename(columns={'面积': '面积/平米'}, inplace=True)

pandas中series的字符串属性的方法

#数据清洗
#将具有数值属性的列的值转成数值类型
df2['单价'] = df2['单价'].str.extract(r'(d+)', expand=False).astype(float)
df2['面积'] = df2['面积'].str.extract(r'(d+.?d+)', expand=False).astype(float)
df2.head(10)

pandas中str列内置方法:https://blog.csdn.net/yueyao121107/article/details/79730934

1、常用的contains()

是否包含表达式,contains()

series=data['列名'].str.contains('we')

返回的是布尔值series

2、

1 #切分字符串 split()
2 series=data['列名'].str.split(',')
3 #把DataFrame列中字符串以','分隔开,每个元素分开后存入一个列表里
4 series=data['列名'].str.split(',',expand=True)
5 #参数expand,这个参数取True时,会把切割出来的内容当做一列,产生多列。
6 series=data['列名'].str.split(',',expand=True)[0]
7 #可以只要第一列

numpy 的astype()函数

contains()对包含部分串的处理

1 #查看二手房最多的小区
2 # df2[].sort_values(['元/平米']).head(10)
3 # df2.isnull()
4 df2[df2['小区'].str.contains('越秀星汇城').astype(bool)].sort_values('元/平米').head(10)

apply() 参照(https://www.cnblogs.com/xiaodongsuibi/p/8927688.html)

函数格式为:apply(func,*args,**kwargs)

用途:当一个函数的参数存在于一个元组或者一个字典中时,用来间接的调用这个函数,并肩元组或者字典中的参数按照顺序传递给参数

解析:args是一个包含按照函数所需参数传递的位置参数的一个元组,是不是很拗口,意思就是,假如A函数的函数位置为 A(a=1,b=2),那么这个元组中就必须严格按照这个参数的位置顺序进行传递(a=3,b=4),而不能是(b=4,a=3)这样的顺序
kwargs是一个包含关键字参数的字典,而其中args如果不传递,kwargs需要传递,则必须在args的位置留空

apply的返回值就是函数func函数的返回值

#保留两位小数
formater="{0:.02f}".format
df2['元/平米'] = df2['元/平米'].apply(lambda x:formater(x))
df2.head(2)
追风少年
原文地址:https://www.cnblogs.com/lzycodinglife/p/12283739.html