- 数据读取时出现分隔错误的处理(对应GIS属性表时:斟酌选择分隔符,如分号就比逗号好,然后读取时忽略错误行)
data = pd.read_csv(file,sep=';', encoding='utf_8_sig',error_bad_lines=False)
data['供电局'] = data.apply(lambda x: x['供电局_y'] if (x['供电局_x'] is None) else x['供电局_x'],axis=1)
data1 = data1.drop(data1[data1['户名'].str.contains('车库|电梯|充电桩|地下|商铺|公寓|公司|储藏|公寓|公共|楼道|备用|配套公建',na=False)].index)
data['合同签订日期'] = pd.to_datetime(data['合同签订日期'])
data.loc[:,'签约年份'] = data.loc[:,'签约日期'].apply(lambda x: x.year).astype(int)
默认right为真,即左开右闭;为假,则左闭右开
data.loc[:,'分类'] = pd.cut(data['未开工时间'],bins=[0,1,3,12],labels=['1年未开工','1-3年未开工','3年以上未开工'])
不清楚原理,但是当使用data.loc[:,'合同签订年份']时,会报错,采用下面的语法则不会。
data['合同签订年份'] = data['合同编号'].apply(lambda x: x[7:11]).astype(int)
data.loc[:,'证件号'] = data.loc[:, '证件号'].apply(lambda x: x.strip())
data = data.dropna(subset=['合同总价'])
data['居住地省份'] = data.apply(lambda row: '本市' if (row['居住地省份'] == '广东') and (row['居住地城市'] in ['湛江','廉江','遂溪','吴川','赤坎','坡头','霞山','麻章','雷州','徐闻','经济']) else row['居住地省份'], axis=1)
mjfd = data.groupby(['所属区县','签约年份'])['面积分段'].count()
# 数据格式需要强制转化,series 转 dataframe
mjfd = mjfd.loc[:,:].to_frame()
mjfd = pd.pivot_table(mjfd,index=['所属区县','面积分段'], columns='签约年份')
pailie = ['市区','廉江市','雷州市','遂溪县','吴川市','徐闻县']
category_fq = pd.api.types.CategoricalDtype(categories=pailie, ordered=True)
data['分区'] = data['分区'].astype(category_fq)
data['购房者出生年份'] = data['购房者出生年份'].apply(lambda x: re.sub(r'[^0-9]', '', x))
data = data[data['购房者出生年份'].str.len()==4]
data['col3']=data[['col1','col2']].sum(axis=1)
# 对第1列至第3列求和
data['sum'] = data.iloc[:,0:3].sum(axis=1)