使用pandas打开csv文件
import pandas as pd data=pd.read_csv('data.csv') print(data)第一步 设置索引列
import pandas as pd data=pd.read_csv('data.csv',index_col=0) print(data)
index_col=0指定第一列为索引列
第二步 去单位(总价、建筑面积、单价字段)使用map或apply 加lambda表达式 清洗数据
map(apply) 会编码元素
lambda表达式的作用是: 使用字符串的replace 将指定的字符替换成‘’(空)
再使用.astype(float)将数据转成数值型
import pandas as pd data=pd.read_csv('data.csv',index_col=0) data['总价']=data['总价'].map(lambda x:str(x).replace('万','')) data['总价']=data['总价'].astype(float) data['建筑面积']=data['建筑面积'].apply(lambda x:str(x).replace('平米','')) data['建筑面积']=data['建筑面积'].astype(float) data['单价']=data['单价'].apply(lambda x:str(x).replace('元/平米','')) data['单价']=data['单价'].astype(float) print(data)数据分析 各区均价分析
data.groupby(‘区域’)将数据按区域分组
可以使用get_group(‘二道’)使用子组的数据、
df=data.groupby('区域') print(df.get_group('二道'))
df[‘单价’].mean().round(2)
获取使用单价的平均值 并保留2位小数点
# 各区均价分析 df=data.groupby('区域') ave=df['单价'].mean().round(2) print(ave)各区房子比
使用apply遍历
使用lambda表达式 除总数
df=data.groupby('区域').size() home=df.apply(lambda x:x/df.values.sum()*100) print(home)装修程度
df=data.groupby('装修').size() print(df)数据可视化 各区均价
# 各区均价分析 df=data.groupby('区域') ave=df['单价'].mean().round(2) plt.rcParams['font.sans-serif'] = ['FangSong'] plt.bar(ave.index,ave.values) plt.title('各区均价') plt.xlabel('区域') plt.ylabel('均价') plt.savefig('各区均价') plt.show()各区房子
# 各区房子比 df=data.groupby('区域').size() home=df.apply(lambda x:x/df.values.sum()*100) plt.rcParams['font.sans-serif'] = ['FangSong'] plt.title('各区房子比') plt.pie(home.values,labels=home.index) plt.show()装修
df=data.groupby('装修').size() plt.rcParams['font.sans-serif'] = ['FangSong'] plt.title('装修程度') plt.bar(df.index,df.values) plt.show()全部代码
import pandas as pd import matplotlib.pyplot as plt data=pd.read_csv('data.csv',index_col=0) # 数据清洗 data['总价']=data['总价'].map(lambda x:str(x).replace('万','')) data['总价']=data['总价'].astype(float) data['建筑面积']=data['建筑面积'].apply(lambda x:str(x).replace('平米','')) data['建筑面积']=data['建筑面积'].astype(float) data['单价']=data['单价'].apply(lambda x:str(x).replace('元/平米','')) data['单价']=data['单价'].astype(float) # 数据分析 # 各区均价分析 # df=data.groupby('区域') # ave=df['单价'].mean().round(2) # plt.rcParams['font.sans-serif'] = ['FangSong'] # plt.bar(ave.index,ave.values) # plt.title('各区均价') # plt.xlabel('区域') # plt.ylabel('均价') # plt.savefig('各区均价') # plt.show() # 各区房子比 # df=data.groupby('区域').size() # home=df.apply(lambda x:x/df.values.sum()*100) # plt.rcParams['font.sans-serif'] = ['FangSong'] # plt.title('各区房子比') # plt.pie(home.values,labels=home.index) # plt.show() # 装修程度 df=data.groupby('装修').size() plt.rcParams['font.sans-serif'] = ['FangSong'] plt.title('装修程度') plt.bar(df.index,df.values) plt.show()资源文件
csv下载链接
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)