(1) 請刪除最後一列為缺失值的行,並求所有在杭州發貨的商品單價均值。
(2) 商品標題帶有「嘉興」但發貨地卻不在嘉興的商品有多少條記錄?
(3) 請按照分位數將**分為「高、較高、中、較低、低」5 個類別,再將 類別結果插入到標題一列之後,最後對類別列進行降序排序。
(4) 付款人數一欄有缺失值嗎?若有則請利用上一問的分類結果對這些缺失 值進行合理估計並填充。
(5) 請將資料後四列合併為如下格式的 series:商品發貨地為 ××,店鋪為 ××,共計 ×× 人付款,單價為 ××。
(6) 請將上一問中的結果恢復成原來的四列。
import pandas as pd
import numpy as np
df_1 = pd.read_csv(
'./data/端午粽子資料.csv'
)df_1.info(
)df_2 = df_1.copy(
).dropna(axis=
0,subset=
['發貨位址 '])
pd.to_numeric(df_1[df_2[
'發貨位址 '].
str.contains(
'杭州')]
[' **'
],errors=
'coerce'
).mean().
round
(decimals=2)
df_2[
(df_1[
'標題'].
str.contains(
'嘉興'))
&(~df_2[
'發貨位址 '].
str.contains(
'嘉興'))
].shape[0]
df_2.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_2.loc[:,
'**類別'
]= pd.cut(df_2[
' **'
],q,right=
false
,labels=
['低'
,'較低'
,'中'
,'較高'
,'高'])
df_2.loc[:,
['標題'
,'**類別'
,' **'
,'付款人數'
,'店鋪'
,'發貨位址 ']]
.sort_values(by=
'**類別'
)df_3 = df_2.copy(
)df_3.info(
)
grouped = df_3.groupby(
'**類別'
)for name,group in grouped:
df_3.loc[group.index,
'付款人數']=
str(
int(pd.to_numeric(group[
'付款人數'
].astype(
str)
.str[:
-3],errors=
'coerce'
).mean())
)+'人付款'
df_3.info(
)df_4 = df_3.astype(
str)
df_str3 =
('商品發貨地為'
+df_4[
'發貨位址 ']+
',店鋪為'
+df_4[
'店鋪']+
',共計'
+df_4[
'付款人數']+
',單價為'
+df_4[
' **']+
'。')
df_str3.head(
)df_res = df_str3.
str.extract(r'商品發貨地為(?p《發貨位址》[\w]+\s*[\w]+),店鋪為(?p《店鋪》[\w]+),共計(?p《付款人數》[\w]+\+*[\w]+),單價為(?p《**》[\d]+\.*[\d]+)。'
) df_res.head(
)
Pandas 綜合練習
問題 1 請刪除最後一列為缺失值的行,並求所有在杭州發貨的商品單價均值。2 商品標題帶有 嘉興 但發貨地卻不在嘉興的商品有多少條記錄?3 請按照分位數將 分為 高 較高 中 較低 低 5 個類別,再將 類別結果插入到標題一列之後,最後對類別列進行降序排序。4 付款人數一欄有缺失值嗎?若有則請利用上一...
Pandas學習之綜合練習
1.刪除最後一列為缺失值的行,並求所有在杭州發貨的商品單價均值 刪除某列為缺失值的行,有兩種方法 第一種方法 利用notna 函式,篩選出該列不為空值的行,則相當於把該列為空值的行刪除掉了 import numpy as np import pandas as pd df pd.read csv e...
Python基礎綜合練習
畫一面五星紅旗,將 與執行截圖發布部落格交作業 import turtle t turtle.pen t.hideturtle 移動筆 def mygoto x,y t.up t.goto x,y t.down 畫五角星 def dramfive x t.begin fill for i in ra...