• 数据处理任务——知识点总结


    前言

    如何使用pandas处理Excel表格数据呢?

    在生活和科研任务中,我们经常需要处理大量的Excel数据。面对几W条数据,甚至几十万条数据,在Excel中操作是远远不够的。这时候就要发挥Python的威力了!

    复习总结

    1.读取数据
    # 读取Excel数据
    def read_file(file_name):
        # 类似的读取.csv文件,使用read_csv
        # 读取sql文件,使用read_sql
        # 读取html文件,使用read_html
        df = pd.read_excel(file_name)
        print(df)
        return df
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    2.写入数据
    # 写入数据
    def write_data(df):
        save_name = 'H691_dealed6.xlsx'
        # 类似的有to_html、to_sql、to_csv
        df.to_excel(save_name)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    3.小结pandas导入导出

    在这里插入图片描述

    4.给dataframe新增一列
    def select_data(df):
        # 给所有数据新加一列,新的一列名称叫做趟次
        # 如何算df的行数   df.shape[0]或者是len(df)
        # 直接df['新列名'] = pd.Series(要填充的数据,index=填充原df,行的范围)
        df['趟次'] = pd.Series([0] * (df.shape[0]), index=np.arange(len(df)))
        print(df)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    示例:
    # 在DataFrame上新加一列
    df['E'] = pd.Series([1, 2, 3, 4, 5, 6], index=pd.date_range('20220701', periods=6))
    print("-" * 50)
    print(df)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    5.如何逐行迭代dataframe
    # 测试迭代df
    def test_loop(df):
        for i in range(len(df)):
            # 迭代每一行
            print(df.loc[i])
        print("&" * 50)
        # df.shape[0]代表df行数、df.shape[1]代表df列数
        for j in range(df.shape[0]):
            # 迭代每行的第一列
            print(df.iloc[j, 1])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    示例:
    # 根据位置进行筛选
    print("-" * 50)
    print(df.iloc[3])
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    print("-" * 50)
    print(df.iloc[[1,3,5], 1:3])
    
    • 1
    • 2

    在这里插入图片描述

    6.如何计算两个时间点之间的时间间隔
    (1)我们这里以Timestamp类型为例
    # 测试df中日期数据类型
    def time_test(df):
        print(df.iloc[0, 0])
        print(type(df.iloc[0, 0]))
        print("时间差格式为")
        print(df.iloc[1642, 0]-df.iloc[568, 0])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    (2)时间差转化为秒的格式
    # 测试df中日期数据类型
    def time_test(df):
        print(df.iloc[0, 0])
        print(type(df.iloc[0, 0]))
        print("时间差格式为")
        print(df.iloc[1642, 0]-df.iloc[568, 0])
        print("时间差转化为秒的格式")
        print((df.iloc[1642, 0]-df.iloc[568, 0]).total_seconds())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    7.按条件删除dataframe的行
    (1)drop函数

    我们可以将要删除的行索引找到,然后使用drop函数进行删除。

    	print(final_df)
     	# 按行索引进行删除,删除第0行
        end_df = final_df.drop(0)
        print("-" * 50)
        print(end_df)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    删除列也是一样的,直接传入列的名字,使用drop函数进行删除!(注意指定axis参数)

        print(final_df)
        # 删除指定列,axis参数=1,表示列
        # 删除指定行时,axis可以不用专门指定,因为axis默认为0
        end_df = final_df.drop('坡度', axis=1)
        print("-" * 50)
        print(end_df)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    (2)直接进行筛选

    参考这篇博客:https://blog.csdn.net/sigtem/article/details/81735242?spm=1001.2014.3001.5506

     	print(final_df)
        # 相当于直接筛选掉,趟次列为1的所有行数据
        end_df = final_df[df['趟次'] != 1]
        print("-" * 50)
        print(end_df)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

  • 相关阅读:
    Qt6 设计工具
    凸面镜反射场景无监督域适应语义分割的一些问题
    Python入门之设置环境变量与缩进
    低代码维格云甘特视图入门教程
    2.3.13、head:显示文件开头的内容
    关于网络协议的若干问题(四)
    U9二次开发之BP定时任务插件开发
    @Component注解的使用及解析
    关于jQuery_DOM操作中的添加,删除,替换标签方法
    软件工程-大学体育馆管理系统用例图
  • 原文地址:https://blog.csdn.net/Elon15/article/details/126685439