Pandas 綜合練習

2021-10-07 16:36:27 字數 2943 閱讀 7150

問題

(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學習之綜合練習

1.刪除最後一列為缺失值的行,並求所有在杭州發貨的商品單價均值 刪除某列為缺失值的行,有兩種方法 第一種方法 利用notna 函式,篩選出該列不為空值的行,則相當於把該列為空值的行刪除掉了 import numpy as np import pandas as pd df pd.read csv e...

Pandas基礎 綜合練習 Python學習筆記

1 請刪除最後一列為缺失值的行,並求所有在杭州發貨的商品單價均值。2 商品標題帶有 嘉興 但發貨地卻不在嘉興的商品有多少條記錄?3 請按照分位數將 分為 高 較高 中 較低 低 5 個類別,再將 類別結果插入到標題一列之後,最後對類別列進行降序排序。4 付款人數一欄有缺失值嗎?若有則請利用上一問的分...

Task05 基於pandas綜合練習

問題 1 請刪除最後一列為缺失值的行,並求所有在杭州發貨的商品單價均值。2 商品標題帶有 嘉興 但發貨地卻不在嘉興的商品有多少條記錄?3 請按照分位數將 分為 高 較高 中 較低 低 5 個類別,再將 類別結果插入到標題一列之後,最後對類別列進行降序排序。4 付款人數一欄有缺失值嗎?若有則請利用上一...