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

原文地址:https://www.cnblogs.com/hany-postq473111315/p/12844906.html