Task05 基於pandas綜合練習

2021-10-07 16:32:19 字數 2926 閱讀 5965

問題

(1) 請刪除最後一列為缺失值的行,並求所有在杭州發貨的商品單價均值。

(2) 商品標題帶有「嘉興」但發貨地卻不在嘉興的商品有多少條記錄?

(3) 請按照分位數將**分為「高、較高、中、較低、低」5 個類別,再將 類別結果插入到標題一列之後,最後對類別列進行降序排序。

(4) 付款人數一欄有缺失值嗎?若有則請利用上一問的分類結果對這些缺失 值進行合理估計並填充。

(5) 請將資料後四列合併為如下格式的 series:商品發貨地為 ××,店鋪為 ××,共計 ×× 人付款,單價為 ××。

(6) 請將上一問中的結果恢復成原來的四列。

in [1]

:import pandas as pd

import numpy as np

in [2]

:df_duanwu = pd.read_csv(

'./練習/端午粽子資料.csv'

) df_duanwu.info(

)#(1) 請刪除最後一列為缺失值的行,並求所有在杭州發貨的商品單價均值。

in [3]

:df_zongzi = df_duanwu.copy(

).dropna(axis=

0,subset=

['發貨位址 '])

pd.to_numeric(df_01[df_zongzi[

'發貨位址 '].

str.contains(

'杭州')]

[' **'

],errors=

'coerce'

).mean().

round

(decimals=2)

#(2) 商品標題帶有「嘉興」但發貨地卻不在嘉興的商品有多少條記錄?

in [4]

:df_zongzi[

(df_01[

'標題'].

str.contains(

'嘉興'))

&(~df_zongzi[

'發貨位址 '].

str.contains(

'嘉興'))

].shape[0]

#(3) 請按照分位數將**分為「高、較高、中、較低、低」5 個類別,再將 類別結果插入到標題一列之後,最後對類別列進行降序排序。

in [5]

:df_zongzi.loc[:,

' **'

]= pd.to_numeric(df_zongzi.loc[:,

' **'

],errors=

'coerce'

) q =

[df_zongzi.loc[:,

' **'

].quantile(i)

for i in[0

,.2,.4

,.6,.8

,1]]

;q[-1]

+=1df_zongzi.loc[:,

'**類別'

]= pd.cut(df_zongzi[

' **'

],q,right=

false

,labels=

['低'

,'較低'

,'中'

,'較高'

,'高'])

in [6]

:df_zongzi.loc[:,

['標題'

,'**類別'

,' **'

,'付款人數'

,'店鋪'

,'發貨位址 ']]

.sort_values(by=

'**類別'

)#(4) 付款人數一欄有缺失值嗎?若有則請利用上一問的分類結果對這些缺失 值進行合理估計並填充。

in [7]

#非缺失值有 4329/4400

df_o4 = df_zogzi.copy(

) df_04.info(

)#用同**類別的付款人數均值(不考慮100餘條類似1.0萬+、5000+等較大數值。)

in [8]

:grouped = df_04.groupby(

'**類別'

)for name,group in grouped:

df_04.loc[group.index,

'付款人數']=

str(

int(pd.to_numeric(group[

'付款人數'

].astype(

str)

.str[:

-3],errors=

'coerce'

).mean())

)+'人付款'

df_04.info(

)#(5) 請將資料後四列合併為如下格式的 series:商品發貨地為 ××,店鋪為 ××,共計 ×× 人付款,單價為 ××。

in [9]

:df_05 = df_04.astype(

str)

df_str3 =

('商品發貨地為'

+df_05[

'發貨位址 ']+

',店鋪為'

+df_05[

'店鋪']+

',共計'

+df_05[

'付款人數']+

',單價為'

+df_05[

' **']+

'。')

df_str3.head(

)#(6) 請將上一問中的結果恢復成原來的四列。

in [10]

:df_res = df_str3.

str.extract(r'商品發貨地為(?p《發貨位址》[\w]+\s*[\w]+),店鋪為(?p《店鋪》[\w]+),共計(?p《付款人數》[\w]+\+*[\w]+),單價為(?p《**》[\d]+\.*[\d]+)。'

) df_res.head(

)

pandas學習 Task05合併

問題二 merge ordered和merge asof的作用是什麼?和merge是什麼關係?merge ordered 根據官方說明,適用與帶時間序列的資料,自帶ffill bfill 引數,可以方便填充 merge asof 模糊匹配版的merge 問題三 請構造乙個多級索引與多級索引合併的例子...

TASK05結構陣列

結構陣列與單元陣列的轉換 單元陣列的處理 實戰演練 總結思考 a.b c a為結構陣列名,b為欄位名,c為此欄位的內容 如果使用結構陣列函式建立,則書寫格式為 array name struct field1 val1,field2 val2,array name為結構陣列名,field為欄位名,v...

天池語義分割task05

乙個成熟合格的深度學習訓練流程至少具備以下功能 在訓練集上進行訓練,並在驗證集上進行驗證 模型可以儲存最優的權重,並讀取權重 記錄下訓練集和驗證集的精度,便於調參。一 學習目標 理解驗證集的作用,並使用訓練集和驗證集完成訓練 學會使用 pytorch 環境下的模型讀取和載入,並了解調參流程 二 構造...