日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

【数据分析】Python :知乎数据清洗整理和结论研究

發(fā)布時(shí)間:2025/3/21 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【数据分析】Python :知乎数据清洗整理和结论研究 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【博客地址】:https://blog.csdn.net/sunyaowu315
【博客大綱地址】:https://blog.csdn.net/sunyaowu315/article/details/82905347
需要數(shù)據(jù)分析、風(fēng)控評(píng)分卡等相關(guān)數(shù)據(jù)、代碼,請(qǐng)?zhí)砑觪q群:102755159,或留言聯(lián)系筆者郵件發(fā)送!!!
如果對(duì)金融風(fēng)控、機(jī)器學(xué)習(xí)、數(shù)據(jù)科學(xué)、大數(shù)據(jù)分析等感興趣的小伙伴,可加微信交流(郵件中備注,我會(huì)附上微信號(hào))

知乎數(shù)據(jù)清洗整理和結(jié)論研究

1、數(shù)據(jù)清洗 - 去除空值

  • 要求:創(chuàng)建函數(shù)
  • 提示:fillna方法填充缺失數(shù)據(jù),注意inplace參數(shù)

2、問(wèn)題1 知友全國(guó)地域分布情況,分析出TOP20

  • 要求:
    ① 按照地域統(tǒng)計(jì) 知友數(shù)量、知友密度(知友數(shù)量/城市常住人口),不要求創(chuàng)建函數(shù)
    ② 知友數(shù)量,知友密度,標(biāo)準(zhǔn)化處理,取值0-100,要求創(chuàng)建函數(shù)
    ③ 通過(guò)多系列柱狀圖,做圖表可視化
  • 提示:
    ① 標(biāo)準(zhǔn)化計(jì)算方法 = (X - Xmin) / (Xmax - Xmin)
    ② 可自行設(shè)置圖表風(fēng)格

3、問(wèn)題2 知友全國(guó)地域分布情況,分析出TOP20

  • 要求:
    ① 按照學(xué)校(教育經(jīng)歷字段) 統(tǒng)計(jì)粉絲數(shù)(‘關(guān)注者’)、關(guān)注人數(shù)(‘關(guān)注’),并篩選出粉絲數(shù)TOP20的學(xué)校,不要求創(chuàng)建函數(shù)
    ② 通過(guò)散點(diǎn)圖 → 橫坐標(biāo)為關(guān)注人數(shù),縱坐標(biāo)為粉絲數(shù),做圖表可視化
    ③ 散點(diǎn)圖中,標(biāo)記出平均關(guān)注人數(shù)(x參考線),平均粉絲數(shù)(y參考線)
  • 提示:
    ① 可自行設(shè)置圖表風(fēng)格

一 導(dǎo)入python包

import pandas as pd import numpy as np import matplotlib.pyplot as plt % matplotlib inline

二 數(shù)據(jù)讀取

data1 = pd.read_csv('C:/Users/Hjx/Desktop/知乎數(shù)據(jù)_201701.csv', engine = 'python') data2 = pd.read_csv('C:/Users/Hjx/Desktop/六普常住人口數(shù).csv', engine = 'python') print(data1.head()) print(data2.head())

三 數(shù)據(jù)清洗

去除空值
文本型字段空值改為“缺失數(shù)據(jù)”,數(shù)字型字段空值改為 0

  • 要求:創(chuàng)建函數(shù)
  • 提示:fillna方法填充缺失數(shù)據(jù),注意inplace參數(shù)
def data_cleaning(df):cols = df.columnsfor col in cols:if df[col].dtype == 'object':df[col].fillna('缺失數(shù)據(jù)', inplace = True)else:df[col].fillna(0, inplace = True)return(df)

該函數(shù)可以將任意數(shù)據(jù)內(nèi)空值替換

data1_c = data_cleaning(data1) data1_c.head(10)

四 統(tǒng)計(jì)分析

  • 問(wèn)題1 知友全國(guó)地域分布情況,分析出TOP20
    • 要求:
      ① 按照地域統(tǒng)計(jì) 知友數(shù)量、知友密度(知友數(shù)量/城市常住人口),不要求創(chuàng)建函數(shù)
      ② 知友數(shù)量,知友密度,標(biāo)準(zhǔn)化處理,取值0-100,要求創(chuàng)建函數(shù)
      ③ 通過(guò)多系列柱狀圖,做圖表可視化
    • 提示:
      ① 標(biāo)準(zhǔn)化計(jì)算方法 = (X - Xmin) / (Xmax - Xmin)
      ② 可自行設(shè)置圖表風(fēng)格
df_city = data1_c.groupby('居住地').count() # 按照居住地統(tǒng)計(jì)知友數(shù)量 data2['city'] = data2['地區(qū)'].str[:-1] # 城市信息清洗,去掉城市等級(jí)文字 #print(df_city.head()) #print(data2.head()) q1data = pd.merge(df_city, data2, left_index = True, right_on = 'city', how = 'inner')[['_id','city','常住人口']] q1data['知友密度'] = q1data['_id']/q1data['常住人口'] #print(q1data.head())
  • 統(tǒng)計(jì)計(jì)算知友數(shù)量,知友密度
def data_nor(df, *cols):colnames = []for col in cols:colname = col + '_nor'df[colname] = (df[col]-df[col].min())/(df[col].max()-df[col].min()) * 100colnames.append(colname)return(df,colnames)
  • 創(chuàng)建函數(shù),結(jié)果返回標(biāo)準(zhǔn)化取值,新列列名
result_data = data_nor(q1data,'_id','知友密度')[0] result_colnames = data_nor(q1data,'_id','知友密度')[1] q1data_top20_sl = resultdata.sort_values(resultcolnames[0], ascending=False)[['city',resultcolnames[0]]].iloc[:20] q1data_top20_md = resultdata.sort_values(resultcolnames[1], ascending=False)[['city',resultcolnames[1]]].iloc[:20] #print(q1data_top20_sl)
  • 標(biāo)準(zhǔn)化取值后得到知友數(shù)量,知友密度的TOP20數(shù)據(jù)
fig1 = plt.figure(num=1,figsize=(12,4)) y1 = q1data_top20_sl[resultcolnames[0]] plt.bar(range(20),y1,width = 0.8,facecolor = 'yellowgreen',edgecolor = 'k',tick_label = q1data_top20_sl['city']) plt.title('知友數(shù)量TOP20\n') plt.grid(True, linestyle = "--",color = "gray", linewidth = "0.5", axis = 'y') for i,j in zip(range(20),y1):plt.text(i+0.1,2,'%.1f' % j, color = 'k',fontsize = 9)fig2 = plt.figure(num=2,figsize=(12,4)) y2 = q1data_top20_sl[resultcolnames[0]] plt.bar(range(20),y2,width = 0.8,facecolor = 'lightskyblue',edgecolor = 'k',tick_label = q1data_top20_md['city']) plt.grid(True, linestyle = "--",color = "gray", linewidth = "0.5", axis = 'y') plt.title('知友密度TOP20\n') for i,j in zip(range(20),y2):plt.text(i+0.1,2,'%.1f' % j, color = 'k',fontsize = 9)
  • 創(chuàng)建圖表

  • 問(wèn)題2 不同高校知友關(guān)注和被關(guān)注情況
    • 要求:
      ① 按照學(xué)校(教育經(jīng)歷字段) 統(tǒng)計(jì)粉絲數(shù)(‘關(guān)注者’)、關(guān)注人數(shù)(‘關(guān)注’),并篩選出粉絲數(shù)TOP20的學(xué)校,不要求創(chuàng)建函數(shù)
      ② 通過(guò)散點(diǎn)圖 → 橫坐標(biāo)為關(guān)注人數(shù),縱坐標(biāo)為粉絲數(shù),做圖表可視化
      ③ 散點(diǎn)圖中,標(biāo)記出平均關(guān)注人數(shù)(x參考線),平均粉絲數(shù)(y參考線)
    • 提示:
      ① 可自行設(shè)置圖表風(fēng)格
q2data = data1_c.groupby('教育經(jīng)歷').sum()[['關(guān)注','關(guān)注者']].drop(['缺失數(shù)據(jù)','大學(xué)','本科']) q2data_c = q2data.sort_values('關(guān)注',ascending=False)[:20] #print(q2data_c)
  • 統(tǒng)計(jì)計(jì)算學(xué)校的粉絲數(shù)、被關(guān)注量
plt.figure(figsize=(10,6)) x = q2data_c['關(guān)注'] y = q2data_c['關(guān)注者'] follow_mean = q2data_c['關(guān)注'].mean() fans_mean = q2data_c['關(guān)注者'].mean() plt.scatter(x,y,marker='.',s = y/1000,cmap = 'Blues',c = y,alpha = 0.8,label = '學(xué)校')
  • 創(chuàng)建 散點(diǎn)圖
plt.axvline(follow_mean,hold=None,label="平均關(guān)注人數(shù):%i人" % follow_mean,color='r',linestyle="--",alpha=0.8)
  • 添加x軸參考線
plt.axhline(fans_mean,hold=None,label="平均粉絲數(shù):%i人" % fans_mean,color='g',linestyle="--",alpha=0.8)
  • 添加y軸參考線
plt.legend(loc = 'upper left') plt.grid()
  • 添加顯示內(nèi)容
for i,j,n in zip(x,y,q2data_c.index):plt.text(i+500,j,n, color = 'k')
  • 添加注釋

總結(jié)

以上是生活随笔為你收集整理的【数据分析】Python :知乎数据清洗整理和结论研究的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。