zoukankan      html  css  js  c++  java
  • pandas_读取Excel并筛选特定数据

    # C:UserslenovoDesktop总结Python
    # 读取 Excel 文件并进行筛选
    
    import pandas as pd
    
    # 设置列对齐
    pd.set_option("display.unicode.ambiguous_as_wide",True)
    pd.set_option("display.unicode.east_asian_width",True)
    
    # 读取工号姓名时段交易额,使用默认索引
    dataframe = pd.read_excel(r'C:UserslenovoDesktop总结Python超市营业额.xlsx',
                              usecols = ['工号','姓名','时段','交易额'])
    
    # 打印前十行数据
    dataframe[:10]
    '''
       工号  姓名         时段  交易额
    0  1001  张三   9:00-14:00    2000
    1  1002  李四  14:00-21:00    1800
    2  1003  王五   9:00-14:00     800
    3  1004  赵六  14:00-21:00    1100
    4  1005  周七   9:00-14:00     600
    5  1006  钱八  14:00-21:00     700
    6  1006  钱八   9:00-14:00     850
    7  1001  张三  14:00-21:00     600
    8  1001  张三   9:00-14:00    1300
    9  1002  李四  14:00-21:00    1500
    '''
    # 跳过 1 2 4 行,以第一列姓名为索引
    dataframe2 = pd.read_excel(r'C:UserslenovoDesktop总结Python超市营业额.xlsx',
                               skiprows = [1,2,4],
                               index_col = 1)
    '''注:张三李四赵六的第一条数据跳过
          工号      日期         时段  交易额      柜台
    姓名                                               
    王五  1003  20190301   9:00-14:00     800      食品
    周七  1005  20190301   9:00-14:00     600    日用品
    钱八  1006  20190301  14:00-21:00     700    日用品
    钱八  1006  20190301   9:00-14:00     850  蔬菜水果
    张三  1001  20190302  14:00-21:00     600  蔬菜水果
    '''
    
    # 筛选符合特定条件的数据
    # 读取超市营业额数据
    dataframe = pd.read_excel(r'C:UserslenovoDesktop总结Python超市营业额.xlsx')
    
    # 查看 5 到 10 的数据
    dataframe[5:11]
    '''
        工号  姓名      日期         时段  交易额      柜台
    5   1006  钱八  20190301  14:00-21:00     700    日用品
    6   1006  钱八  20190301   9:00-14:00     850  蔬菜水果
    7   1001  张三  20190302  14:00-21:00     600  蔬菜水果
    8   1001  张三  20190302   9:00-14:00    1300    化妆品
    9   1002  李四  20190302  14:00-21:00    1500    化妆品
    10  1003  王五  20190302   9:00-14:00    1000      食品
    '''
    # 查看第六行的数据
    dataframe.iloc[5]
    '''
    工号             1006
    姓名             钱八
    时段      14:00-21:00
    交易额            700
    Name: 5, dtype: object
    '''
    dataframe[:5]
    '''
       工号  姓名         时段  交易额
    0  1001  张三   9:00-14:00    2000
    1  1002  李四  14:00-21:00    1800
    2  1003  王五   9:00-14:00     800
    3  1004  赵六  14:00-21:00    1100
    4  1005  周七   9:00-14:00     600
    '''
    # 查看第 1 3 4 行的数据
    dataframe.iloc[[0,2,3],:]
    '''
       工号  姓名         时段  交易额
    0  1001  张三   9:00-14:00    2000
    2  1003  王五   9:00-14:00     800
    3  1004  赵六  14:00-21:00    1100
    '''
    # 查看第 1 3 4 行的第 1 2 列
    dataframe.iloc[[0,2,3],[0,1]]
    '''
       工号  姓名
    0  1001  张三
    2  1003  王五
    3  1004  赵六
    '''
    # 查看前五行指定,姓名、时段和交易额的数据
    dataframe[['姓名','时段','交易额']][:5]
    '''
       姓名         时段  交易额
    0  张三   9:00-14:00    2000
    1  李四  14:00-21:00    1800
    2  王五   9:00-14:00     800
    3  赵六  14:00-21:00    1100
    4  周七   9:00-14:00     600
    '''
    dataframe[:5][['姓名','时段','交易额']]
    '''
       姓名         时段  交易额
    0  张三   9:00-14:00    2000
    1  李四  14:00-21:00    1800
    2  王五   9:00-14:00     800
    3  赵六  14:00-21:00    1100
    4  周七   9:00-14:00     600
    '''
    # 查看第 2 4 5 行 姓名,交易额 数据 loc 函数
    dataframe.loc[[1,3,4],['姓名','交易额']]
    '''
       姓名  交易额
    1  李四    1800
    3  赵六    1100
    4  周七     600
    '''
    # 查看第四行的姓名数据
    dataframe.at[3,'姓名']
    # '赵六'
    
    # 查看交易额大于 1700 的数据
    dataframe[dataframe['交易额'] > 1700]
    '''
       工号  姓名         时段  交易额
    0  1001  张三   9:00-14:00    2000
    1  1002  李四  14:00-21:00    1800
    '''
    # 查看交易额总和
    dataframe.sum()
    '''
    工号                                                  17055
    姓名      张三李四王五赵六周七钱八钱八张三张三李四王五赵六周七钱八李四王五张三...
    时段      9:00-14:0014:00-21:009:00-14:0014:00-21:009:00...
    交易额                                                17410
    dtype: object
    '''
    # 某一时段的交易总和
    dataframe[dataframe['时段'] == '14:00-21:00']['交易额'].sum()
    # 8300
    
    # 查看张三在下午14:00之后的交易情况
    dataframe[(dataframe.姓名 == '张三') & (dataframe.时段 == '14:00-21:00')][:10]
    '''
       工号  姓名         时段  交易额
    7  1001  张三  14:00-21:00     600
    '''
    # 查看日用品的销售总额
    # dataframe[dataframe['柜台'] == '日用品']['交易额'].sum()
    
    # 查看张三总共的交易额
    dataframe[dataframe['姓名'].isin(['张三'])]['交易额'].sum()
    # 5200
    
    # 查看交易额在 1500~3000 之间的记录
    dataframe[dataframe['交易额'].between(1500,3000)]
    '''
       工号  姓名         时段  交易额
    0  1001  张三   9:00-14:00    2000
    1  1002  李四  14:00-21:00    1800
    9  1002  李四  14:00-21:00    1500
    '''

    2020-05-07

  • 相关阅读:
    一个有关FWT&FMT的东西
    【XSY2762】插线板 分块
    【XSY1905】【XSY2761】新访问计划 二分 树型DP
    【XSY2760】nonintersect 计算几何
    【XSY2787】Mythological VII 贪心
    【XSY2786】Mythological VI 数学
    【XSY2785】模型
    【BZOJ4126】【BZOJ3516】【BZOJ3157】国王奇遇记 线性插值
    【XSY2751】Mythological IV 线性插值
    【XSY2750】Mythological V 2-sat
  • 原文地址:https://www.cnblogs.com/hany-postq473111315/p/12844906.html
Copyright © 2011-2022 走看看