Pandas学习之综合练习

    技术2022-07-11  84

    一、端午节的淘宝粽子交易

    1.删除最后一列为缺失值的行,并求所有在杭州发货的商品单价均值

    删除某列为缺失值的行,有两种方法:

    第一种方法

    利用notna()函数,筛选出该列不为空值的行,则相当于把该列为空值的行删除掉了

    import numpy as np import pandas as pd df = pd.read_csv("E:/data/ZongZi.csv",names=['A','B','C','D','E']).convert_dtypes() df.head() ABCDE0标题价格付款人数店铺发货地址1五芳斋粽子礼盒 心悦+18只装咸鸭蛋组合端午节礼品团购嘉兴肉粽子1296人付款五芳斋官方旗舰店浙江 嘉兴2北京稻香村端午粽子手工豆沙粽220g*2袋散装豆沙粽香甜软糯豆沙粽448人付款天猫超市上海3五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.9100万+人付款五芳斋官方旗舰店浙江 嘉兴4稻香私房鲜肉粽蛋黄肉粽嘉兴粽子咸鸭蛋礼盒装端午节送礼特产团购1381936人付款稻香村食品旗舰店北京 import numpy as np import pandas as pd data = pd.read_csv('E:/data/ZongZi.csv') data.head() 标题价格付款人数店铺发货地址0五芳斋粽子礼盒 心悦+18只装咸鸭蛋组合端午节礼品团购嘉兴肉粽子1296人付款五芳斋官方旗舰店浙江 嘉兴1北京稻香村端午粽子手工豆沙粽220g*2袋散装豆沙粽香甜软糯豆沙粽448人付款天猫超市上海2五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.9100万+人付款五芳斋官方旗舰店浙江 嘉兴3稻香私房鲜肉粽蛋黄肉粽嘉兴粽子咸鸭蛋礼盒装端午节送礼特产团购1381936人付款稻香村食品旗舰店北京4嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味3.89500+人付款城城喂食猫浙江 嘉兴 data.info() <class 'pandas.core.frame.DataFrame'> RangeIndex: 4403 entries, 0 to 4402 Data columns (total 5 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 标题 4403 non-null object 1 价格 4403 non-null object 2 付款人数 4332 non-null object 3 店铺 4403 non-null object 4 发货地址 4400 non-null object dtypes: object(5) memory usage: 172.1+ KB data = data[data['发货地址 '].notna()] data.info() #可以看到data的记录由原来的4403变成了4400,说明有三条空记录被剔除掉了 <class 'pandas.core.frame.DataFrame'> Int64Index: 4400 entries, 0 to 4402 Data columns (total 5 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 标题 4400 non-null object 1 价格 4400 non-null object 2 付款人数 4329 non-null object 3 店铺 4400 non-null object 4 发货地址 4400 non-null object dtypes: object(5) memory usage: 206.2+ KB

    第二种方法

    找出该列为空值的行的index,然后通过drop方法将该行删除掉。

    利用drop方法删除最后一列有空值的行。

    drop方法可以对DataFrame对象某项索引值,包括行索引(index,axis = 0)和列索引(columns,axis = 1)

    import numpy as np import pandas as pd data = pd.read_csv('E:/data/ZongZi.csv') data.head() 标题价格付款人数店铺发货地址0五芳斋粽子礼盒 心悦+18只装咸鸭蛋组合端午节礼品团购嘉兴肉粽子1296人付款五芳斋官方旗舰店浙江 嘉兴1北京稻香村端午粽子手工豆沙粽220g*2袋散装豆沙粽香甜软糯豆沙粽448人付款天猫超市上海2五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.9100万+人付款五芳斋官方旗舰店浙江 嘉兴3稻香私房鲜肉粽蛋黄肉粽嘉兴粽子咸鸭蛋礼盒装端午节送礼特产团购1381936人付款稻香村食品旗舰店北京4嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味3.89500+人付款城城喂食猫浙江 嘉兴 data.info() #可以看到data是一个4403行5列的数据 <class 'pandas.core.frame.DataFrame'> RangeIndex: 4403 entries, 0 to 4402 Data columns (total 5 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 标题 4403 non-null object 1 价格 4403 non-null object 2 付款人数 4332 non-null object 3 店铺 4403 non-null object 4 发货地址 4400 non-null object dtypes: object(5) memory usage: 172.1+ KB data['发货地址 '].isnull().value_counts() False 4400 True 3 Name: 发货地址 , dtype: int64 data['发货地址 '] = data['发货地址 '].fillna('999') index_list = data[(data['发货地址 '] == '999')].index.tolist() index_list [1847, 2418, 2716] data = data.drop(index_list,axis=0) data.info() <class 'pandas.core.frame.DataFrame'> Int64Index: 4400 entries, 0 to 4402 Data columns (total 5 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 标题 4400 non-null object 1 价格 4400 non-null object 2 付款人数 4329 non-null object 3 店铺 4400 non-null object 4 发货地址 4400 non-null object dtypes: object(5) memory usage: 206.2+ KB
    Processed: 0.011, SQL: 9