Advertisement

利用Pandas库进行简单的数据分析(数据清洗)

阅读量:

Pandas练习3

    • 练习题

      • 练习1
      • 练习2
    • 练习1

      • 代码
      • 效果图
    • 练习2

      • 代码
      • 效果图
    • 小结

练习题

练习1

练习2

练习1

代码

复制代码
    import pandas as pd
    import numpy as np
    
    # Exercise 1
    # 读取北向.csv   指定 trade_date 为 行索引
    data_north = pd.read_csv("北向.csv", index_col="trade_date")
    print("读取后的数据为:")
    print(data_north)
    print()
    # 查看数据的基本信息 有无缺失值 对其缺失值进行处理
    print("数据的基本信息:")
    print(data_north.info())
    print()
    # 删除缺失值所在行
    data_north.dropna(inplace=True)  # inplace=True表示在原数据上进行操作
    print()
    # 查看数据的基本信息 查看数据是否清洗完毕
    print("清理后的数据信息为:")
    print(data_north.info())
    print()
    # 标签为 index 这列没啥用 将该列删除
    data_north.drop(columns="index", inplace=True)  # 是删除列 所以要用columns
    # 观察数据是否有重复行
    print(data_north.duplicated(keep="first"))
    # 将重复行进行删除
    data_north.drop_duplicates(inplace=True)
    print()
    # 将行索引 进行升序
    data_north.sort_index(inplace=True)
    print(data_north)
    # 将处理好的数据 保存至 北向(副).csv
    data_north.to_csv("北向(副).csv")
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    AI写代码

效果图

  1. 原数据
  1. 原数据基本信息
  1. 清理后的数据信息
  1. 是否存在重复行
  1. 排序后的数据

练习2

代码

复制代码
    import pandas as pd
    # exercise 2
    # 读取 FoodFacts.csv 数据,该数据是全球食品数据,需分析每个国家添加剂的平均使用。
    # 步骤分析
    # 1.读取数据
    # 提取关于国家和添加剂的两列数据
    food_additive_data = pd.read_csv("FoodFacts.csv", usecols=["countries_en", "additives_n"])
    print("数据的信息:")
    print(food_additive_data.info())
    print()
    
    # 2.数据质量考量
    # 根据info()方法,发现有很多缺失值。
    # 所以首先删除缺失数据NaN
    food_fact = food_additive_data.dropna()
    print("处理后的数据信息:")
    print(food_fact.info())  # 再次观察数据表的信息
    print("处理后的数据前20行:")
    print(food_fact.head(21))  # 发现有些行有多个国家 用逗号隔开了
    print()
    
    # 3.清洗数据
    # 定义一个方法:获取国家数据,发现国家数据是有用逗号隔开的。过滤掉包含逗号的数据
    
    
    def get_countries(countries_data):
    # 去除包含逗号的数据
    f = lambda x: "," not in x
    without_comma = countries_data.apply(f)
    without_comma_countries = countries_data[without_comma]
    # 去除重复值 获取各个国家的名称列表
    # 使用drop_duplicates()方法
    countries_counts = without_comma_countries.drop_duplicates()
    return countries_counts
    
    
    countries = get_countries(food_fact["countries_en"])
    print("获取到的国家:")
    print(countries)
    
    # 4.对各个国家的使用数量进行统计
    #   (1).清洗,统计国家数据
    #   (2).通过国家统计添加剂用量
    
    
    def get_additives_count(countries_data, food_dt):
    count_list = []
    # 遍历循环国家的名字
    for country in countries_data:
        # 如何取出每个国家对应的数据
        data = food_dt[food_dt.loc[:, "countries_en"] == country]
        # 求每个国家添加剂的平均值
        additives_mean = data["additives_n"].mean()
        count_list.append(additives_mean)
    # 构建新的DataFrame重组数据
    new_df = pd.DataFrame({"countries": countries_data, "additives_mean": count_list})
    return new_df
    
    
    print()
    print("获取到的添加剂的信息:")
    additives = get_additives_count(countries, food_fact)
    print(additives)
    # 5.保存统计结果
    additives.to_excel("results.xlsx")
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    AI写代码

效果图

基本信息

处理缺失值后的数据信息

处理缺失值后的数据的前20行

获取到的国家

获取到的添加剂的信息

小结

在分析文件数据前需明确核心数据要素(有用部分)。
在开展数据分析工作时应特别关注数据特征(如重复记录、存储格式等)。
应在实际操作中充分运用Series与DataFrame功能。

全部评论 (0)

还没有任何评论哟~