pandas
pandas
1.表格数据操作;【增删改查】
2.实现多个表格的处理;
3.数据清洗操作: 缺失值,重复值,异常值,数据标准化,数据转换的操作;
4.实现excel的特殊操作:生成透视表,交叉表;
5.完成统计分析;
import pandas as pd
import numpy as np
一、构建dataframe
创建方法一:
df = pd.DataFrame(data=[['ss',20, '男','0831'],['lx',20, '女','0830'],['lx',22, '女','0830']],
index=['a','c', 'b'],
columns=['name','age','sex','class'],)
print(df)
name age sex class
a ss 20 男 0831
c lx 20 女 0830
b lx 22 女 0830
创建方法二:
df2 = pd.DataFrame(data={'name':['ss','lx'],
'age':[20, 18],
'sex':['男','女'],
'class':['0831','0830']})
print(type(df2))
<class 'pandas.core.frame.DataFrame'>
二、dataframe属性
print('df结构:\n', df.shape)
print('df维度:\n', df.ndim)
print('df元素个数:\n', df.size)
print('df数据类型:\n', df.dtypes)
print('df的列索引:\n', df.columns)
print('df的行索引:\n', df.index)
print('df的元素:\n', type(df.values)) #<class 'numpy.ndarray'>
df结构:
(3, 4)
df维度:
2
df元素个数:
12
df数据类型:
name object
age int64
sex object
class object
dtype: object
df的列索引:
Index(['name', 'age', 'sex', 'class'], dtype='object')
df的行索引:
Index(['a', 'c', 'b'], dtype='object')
df的元素:
<class 'numpy.ndarray'>
三、df的查找
series是一维的类型,只有一个轴
- 切一列值的方法
ser = df['name'] # 一维的切法,返回的是series类型
print(type(ser)) # <class 'pandas.core.series.Series'>
<class 'pandas.core.series.Series'>
2.切多列值的方法
df[['name', 'age']][:2]
name | age | |
---|---|---|
a | ss | 20 |
c | lx | 20 |
- 索引; df.loc[行索引名称/条件, 列的索引名称]
print(df)
name age sex class
a ss 20 男 0831
c lx 20 女 0830
b lx 22 女 0830
# print(df.loc['a', 'name'])
# print(df.loc[['a','b'], 'name'])
# print(df.loc[['a','b'], ['name','age']])
print(df.loc[:'b', 'name']) # 前闭后闭
a ss
c lx
b lx
Name: name, dtype: object
3.条件切片
例: 获取所有年龄大于18岁的同学
mask = df['age'] > 18
print(mask)
a True
c True
b True
Name: age, dtype: bool
df.loc[mask, 'name']
a ss
c lx
b lx
Name: name, dtype: object
例: 获取所有年龄大于18岁的女同学
mask1 = df['age']>18
mask2 = df['sex'] == '女'
mask3 = mask1 & mask2
df.loc[mask3, :]
name | age | sex | class | |
---|---|---|---|---|
c | lx | 20 | 女 | 0830 |
b | lx | 22 | 女 | 0830 |
df.iloc[行的位置索引, 列的位置索引]
print(df)
name age sex class
a ss 20 男 0831
c lx 20 女 0830
b lx 22 女 0830
df.iloc[:, 1]
a 20
c 20
b 22
Name: age, dtype: int64
df.iloc[:2, 2:] # 前闭后开
sex | class | |
---|---|---|
a | 男 | 0831 |
c | 女 | 0830 |
df.iloc[-1, :].index
Index(['name', 'age', 'sex', 'class'], dtype='object')
4.df增加方法
(1)增加一列:
df['address'] = ['北京','上海','北京']
print(df)
name age sex class address
a ss 20 男 0831 北京
c lx 20 女 0830 上海
b lx 22 女 0830 北京
df['address'] = '北京'
print(df)
name age sex class address
a ss 20 男 0831 北京
c lx 20 女 0830 北京
b lx 22 女 0830 北京
(2)增加一行:
df_mini = pd.DataFrame(data={'name':['ss','lx'],
'age':[20, 18],
'sex':['男','女'],
'class':['0831','0830']},index=['a','b'])
df3 = df.append(df_mini,ignore_index=True )
#ignore_index: 表示忽略原始索引,重新设置索引
print(df3)
address age class name sex
0 北京 20 0831 ss 男
1 北京 20 0830 lx 女
2 北京 22 0830 lx 女
3 NaN 20 0831 ss 男
4 NaN 18 0830 lx 女
- 删除方法
inplace: 表示是否对原表进行修改,True为直接修改原始表格, False为不修改;
#删除列:
df3.drop(labels=['address','class'], axis=1)
age | name | sex | |
---|---|---|---|
0 | 20 | ss | 男 |
1 | 20 | lx | 女 |
2 | 22 | lx | 女 |
3 | 20 | ss | 男 |
4 | 18 | lx | 女 |
df3.drop(labels=[0, 2], axis=0, inplace=True)
print(df3)
address age class name sex
1 北京 20 0830 lx 女
3 NaN 20 0831 ss 男
4 NaN 18 0830 lx 女
- df更改数值方法
print(df)
name age sex class address
a ss 20 男 0831 北京
c lx 20 女 0830 北京
b lx 22 女 0830 北京
# 例: 将名字为“lx”的人的班级改为“有问题”;
df.loc[df['name']=='lx', 'class'] = '有问题'
print(df)
name age sex class address
a ss 20 男 0831 北京
c lx 20 女 有问题 北京
b lx 22 女 有问题 北京
四、统计分析
- numpy 统计方法:
print(df)
name age sex class address
a ss 20 男 0831 北京
c lx 20 女 有问题 北京
b lx 22 女 有问题 北京
#2. 延用numpy中的10个统计分析方法:
np.mean(df['age'])
20.666666666666668
#3. 其它方法:
np.ptp(df['age']) #极差 : max-min
2
print(df)
name age sex class address
a ss 20 男 0831 北京
c lx 20 女 有问题 北京
b lx 22 女 有问题 北京
#4. pandas中的方法:
# (1) 针对series:
# df['age'].min() #df与series中通用
# df['age'].std() #df与series中通用
# df['age'].argmax() #只能在series中使用
# df['name'].mode() # 众数 #df与series中通用
# df['name'].count() # 非空数目 #df与series中通用
# df['name'].value_counts() # 频数统计 #只能在series中使用
#(2) 针对df类型
print(df)
df['grade'] = [98, 90, 92]
name age sex class address
a ss 20 男 0831 北京
c lx 20 女 有问题 北京
b lx 22 女 有问题 北京
print(df[['age', 'grade']].idxmax(axis=1)) # 最大值索引, 横向比较;
a grade
c grade
b grade
dtype: object
print(df[['age', 'grade']].idxmax(axis=0)) # 最大值索引,纵向比较;【一维,二维都可以使用]
age b
grade a
dtype: object
print(df.mode()) #众数 【ser和pandas中都可以使用】
name age sex class address grade
0 lx 20.0 女 有问题 北京 90
1 NaN NaN NaN NaN NaN 92
2 NaN NaN NaN NaN NaN 98
print(df[['age','grade']].describe())
age grade
count 3.000000 3.000000
mean 20.666667 93.333333
std 1.154701 4.163332
min 20.000000 90.000000
25% 20.000000 91.000000
50% 20.000000 92.000000
75% 21.000000 95.000000
max 22.000000 98.000000
print(df[['name','sex']].describe())
"""
describe()作用在类别型df中返回值:
count:非空数目
unique: 去重之后有几个值;
top:众数
freq:众数出现的频数
"""
name sex
count 3 3
unique 2 2
top lx 女
freq 2 2
'\ndescribe()作用在类别型df中返回值:\ncount:非空数目\nunique: 去重之后有几个值;\ntop:众数\nfreq:众数出现的频数\n'
print(df[['age','name']].describe())
age
count 3.000000
mean 20.666667
std 1.154701
min 20.000000
25% 20.000000
50% 20.000000
75% 21.000000
max 22.000000
五、excel文件读取:
detail = pd.read_excel(r'C:\Users\ibm\Desktop\meal_order_detail.xlsx')
作业:
- 删除表格中取值全部为空值的列 或 取值全部相同的列,删完以后结构为多少?
- 该饭店中8月1日一共销售了多少个订单?
- 该饭店中8月份第一周共收入多少钱?
- 该饭店中一共出售多少种菜品,哪种菜品最受欢迎?【请认真思考返回值是否符合逻辑】
- 该饭店中菜品均价为多少?最高价格与最低价格差距多大?
补充内容:
1、series构建
pd.Series(data=['lx', 'ss', 'zs'], index=[0, 1, 2])
0 lx
1 ss
2 zs
dtype: object
六、读取excel数据:
1.sheetname; 切换sheet表格
1. 可以传入int,表示从0开始的索引;
2. 可以传入string,表示表名称;
3. 可以传入None,表示一次性获取所有表格;
4. 可以传入list, [‘sheetname’, 2]
data = pd.read_excel(r'C:\Users\ibm\Desktop\meal_order_detail.xlsx',sheetname=['meal_order_detail2','meal_order_detail1'])
data = pd.read_excel(r'C:\Users\ibm\Desktop\meal_order_detail.xlsx', sheetname=None)
print('查看当前表格中所有sheet的名称:\n', list(data.keys()))
print('参看第一张表格数据:\n', data['meal_order_detail1'])
查看当前表格中所有sheet的名称:
['meal_order_detail1', 'meal_order_detail2', 'meal_order_detail3']
参看第一张表格数据:
detail_id order_id dishes_id logicprn_name parent_class_name \
0 2956 417 610062 NaN NaN
1 2958 417 609957 NaN NaN
2 2961 417 609950 NaN NaN
3 2966 417 610038 NaN NaN
4 2968 417 610003 NaN NaN
5 1899 301 610019 NaN NaN
6 1902 301 609991 NaN NaN
7 1906 301 609983 NaN NaN
8 1907 301 609981 NaN NaN
9 1908 301 610030 NaN NaN
10 1910 301 610011 NaN NaN
11 2916 413 609966 NaN NaN
12 2919 413 609965 NaN NaN
13 2921 413 609936 NaN NaN
14 2923 413 609978 NaN NaN
15 2925 413 609983 NaN NaN
16 2927 413 610050 NaN NaN
17 2926 413 609984 NaN NaN
18 2928 413 610013 NaN NaN
19 2930 413 610032 NaN NaN
20 2932 413 609973 NaN NaN
21 2934 413 610007 NaN NaN
22 2938 415 609964 NaN NaN
23 2935 413 609992 NaN NaN
24 2936 413 610012 NaN NaN
25 2940 415 610064 NaN NaN
26 2937 413 610023 NaN NaN
27 2939 413 609931 NaN NaN
28 2643 392 609930 NaN NaN
29 2942 415 609959 NaN NaN
... ... ... ... ... ...
2749 6335 732 609944 NaN NaN
2750 6336 732 609952 NaN NaN
2751 5074 616 609970 NaN NaN
2752 5075 616 610001 NaN NaN
2753 6088 716 609970 NaN NaN
2754 6091 716 609942 NaN NaN
2755 6094 716 609946 NaN NaN
2756 6098 716 609953 NaN NaN
2757 6106 716 609957 NaN NaN
2758 6103 716 609944 NaN NaN
2759 5076 616 610000 NaN NaN
2760 5080 616 610033 NaN NaN
2761 6111 716 609960 NaN NaN
2762 6115 716 609955 NaN NaN
2763 6120 716 609983 NaN NaN
2764 6116 716 609974 NaN NaN
2765 6125 716 609991 NaN NaN
2766 6127 716 610011 NaN NaN
2767 6131 716 610038 NaN NaN
2768 6128 716 610022 NaN NaN
2769 6135 716 610020 NaN NaN
2770 6137 716 610031 NaN NaN
2771 6734 774 609941 NaN NaN
2772 6736 774 609944 NaN NaN
2773 6739 774 609994 NaN NaN
2774 6750 774 610011 NaN NaN
2775 6742 774 609996 NaN NaN
2776 6756 774 609949 NaN NaN
2777 6763 774 610014 NaN NaN
2778 6764 774 610017 NaN NaN
dishes_name itemis_add counts amounts cost \
0 蒜蓉生蚝 0 1 49 NaN
1 蒙古烤羊腿 0 1 48 NaN
2 大蒜苋菜 0 1 30 NaN
3 芝麻烤紫菜 0 1 25 NaN
4 蒜香包 0 1 13 NaN
5 白斩鸡 0 1 88 NaN
6 香烤牛排 0 1 55 NaN
7 干锅田鸡 0 1 88 NaN
8 桂圆枸杞鸽子汤 0 1 48 NaN
9 番茄有机花菜 0 1 32 NaN
10 白饭/大碗 0 1 10 NaN
11 芝士烩波士顿龙虾 0 1 175 NaN
12 葱姜炒蟹 0 1 109 NaN
13 皮蛋瘦肉粥 0 1 16 NaN
14 爆炒鳝碌 0 1 55 NaN
15 干锅田鸡 0 1 88 NaN
16 番茄甘蓝 0 1 33 NaN
17 重庆特色油烧兔 0 1 69 NaN
18 番茄炖秋葵 0 1 35 NaN
19 长城窖酿解百纳红酒干红葡萄酒 0 1 35 NaN
20 紫薯面包卷 0 1 20 NaN
21 桂圆肉红豆八宝饭 0 1 39 NaN
22 避风塘炒蟹 0 1 48 NaN
23 番茄炖牛腩\r\n\r\n\r\n 0 1 35 NaN
24 香菇鹌鹑蛋 0 1 39 NaN
25 花蛤蒸蛋 0 1 37 NaN
26 啤酒鸭 0 1 48 NaN
27 焖猪手 0 1 58 NaN
28 豌豆薯仔猪骨汤 0 1 39 NaN
29 小炒羊腰\r\n\r\n\r\n 0 1 36 NaN
... ... ... ... ... ...
2749 水煮鱼 0 1 65 NaN
2750 美妙绝伦之白莲花 0 1 29 NaN
2751 麻辣小龙虾 0 1 99 NaN
2752 土豆西红柿汤面 0 1 13 NaN
2753 麻辣小龙虾 0 1 99 NaN
2754 辣炒鱿鱼 0 1 58 NaN
2755 谷稻小庄 0 1 38 NaN
2756 凉拌菠菜 0 1 27 NaN
2757 蒙古烤羊腿\r\n\r\n\r\n 0 1 48 NaN
2758 水煮鱼 0 1 65 NaN
2759 酸辣汤面 0 1 16 NaN
2760 张裕葡萄酒张裕赤霞珠干红\r\n\r\n\r\n 0 1 32 NaN
2761 白胡椒胡萝卜羊肉汤 0 1 35 NaN
2762 红酒炖羊肉 0 1 108 NaN
2763 干锅田鸡 0 1 88 NaN
2764 南瓜枸杞小饼干 0 1 19 NaN
2765 香烤牛排\r\n\r\n\r\n 0 1 55 NaN
2766 白饭/大碗 0 1 10 NaN
2767 芝麻烤紫菜 0 1 25 NaN
2768 杭椒鸡珍 0 1 58 NaN
2769 泡椒凤爪\r\n\r\n\r\n 0 1 58 NaN
2770 糖醋蕃茄溜青花 0 1 33 NaN
2771 清蒸海鱼 0 1 78 NaN
2772 水煮鱼 0 1 65 NaN
2773 独家薄荷鲜虾牛肉卷\r\n\r\n\r\n 0 1 45 NaN
2774 白饭/大碗 0 1 10 NaN
2775 牛尾汤 0 1 40 NaN
2776 意文柠檬汁 0 1 13 NaN
2777 金玉良缘 0 1 30 NaN
2778 酸辣藕丁 0 1 33 NaN
place_order_time discount_amt discount_reason kick_back \
0 2016-08-01 11:05:36 NaN NaN NaN
1 2016-08-01 11:07:07 NaN NaN NaN
2 2016-08-01 11:07:40 NaN NaN NaN
3 2016-08-01 11:11:11 NaN NaN NaN
4 2016-08-01 11:11:30 NaN NaN NaN
5 2016-08-01 11:15:57 NaN NaN NaN
6 2016-08-01 11:19:12 NaN NaN NaN
7 2016-08-01 11:22:21 NaN NaN NaN
8 2016-08-01 11:22:53 NaN NaN NaN
9 2016-08-01 11:23:56 NaN NaN NaN
10 2016-08-01 11:31:15 NaN NaN NaN
11 2016-08-01 12:42:52 NaN NaN NaN
12 2016-08-01 12:43:21 NaN NaN NaN
13 2016-08-01 12:43:34 NaN NaN NaN
14 2016-08-01 12:44:08 NaN NaN NaN
15 2016-08-01 12:44:12 NaN NaN NaN
16 2016-08-01 12:45:09 NaN NaN NaN
17 2016-08-01 12:45:24 NaN NaN NaN
18 2016-08-01 12:46:26 NaN NaN NaN
19 2016-08-01 12:48:48 NaN NaN NaN
20 2016-08-01 12:49:27 NaN NaN NaN
21 2016-08-01 12:50:03 NaN NaN NaN
22 2016-08-01 12:51:38 NaN NaN NaN
23 2016-08-01 12:51:46 NaN NaN NaN
24 2016-08-01 12:52:18 NaN NaN NaN
25 2016-08-01 12:52:37 NaN NaN NaN
26 2016-08-01 12:53:39 NaN NaN NaN
27 2016-08-01 12:54:30 NaN NaN NaN
28 2016-08-01 12:58:44 NaN NaN NaN
29 2016-08-01 12:59:03 NaN NaN NaN
... ... ... ... ...
2749 2016-08-10 20:19:03 NaN NaN NaN
2750 2016-08-10 20:19:22 NaN NaN NaN
2751 2016-08-10 20:37:48 NaN NaN NaN
2752 2016-08-10 20:39:37 NaN NaN NaN
2753 2016-08-10 20:41:10 NaN NaN NaN
2754 2016-08-10 20:41:29 NaN NaN NaN
2755 2016-08-10 20:46:41 NaN NaN NaN
2756 2016-08-10 20:47:14 NaN NaN NaN
2757 2016-08-10 20:47:17 NaN NaN NaN
2758 2016-08-10 20:47:36 NaN NaN NaN
2759 2016-08-10 20:48:31 NaN NaN NaN
2760 2016-08-10 20:49:20 NaN NaN NaN
2761 2016-08-10 20:50:11 NaN NaN NaN
2762 2016-08-10 20:50:12 NaN NaN NaN
2763 2016-08-10 20:51:37 NaN NaN NaN
2764 2016-08-10 20:51:42 NaN NaN NaN
2765 2016-08-10 20:52:09 NaN NaN NaN
2766 2016-08-10 20:52:12 NaN NaN NaN
2767 2016-08-10 20:53:09 NaN NaN NaN
2768 2016-08-10 20:53:26 NaN NaN NaN
2769 2016-08-10 20:56:10 NaN NaN NaN
2770 2016-08-10 20:57:11 NaN NaN NaN
2771 2016-08-10 21:50:35 NaN NaN NaN
2772 2016-08-10 21:53:17 NaN NaN NaN
2773 2016-08-10 21:55:58 NaN NaN NaN
2774 2016-08-10 21:56:24 NaN NaN NaN
2775 2016-08-10 21:56:48 NaN NaN NaN
2776 2016-08-10 22:01:52 NaN NaN NaN
2777 2016-08-10 22:03:58 NaN NaN NaN
2778 2016-08-10 22:04:30 NaN NaN NaN
add_inprice add_info bar_code picture_file emp_id
0 0 NaN NaN caipu/104001.jpg 1442
1 0 NaN NaN caipu/202003.jpg 1442
2 0 NaN NaN caipu/303001.jpg 1442
3 0 NaN NaN caipu/105002.jpg 1442
4 0 NaN NaN caipu/503002.jpg 1442
5 0 NaN NaN caipu/204002.jpg 1095
6 0 NaN NaN caipu/201001.jpg 1095
7 0 NaN NaN caipu/205003.jpg 1095
8 0 NaN NaN caipu/205001.jpg 1095
9 0 NaN NaN caipu/304004.jpg 1095
10 0 NaN NaN caipu/601005.jpg 1095
11 0 NaN NaN caipu/101001.jpg 1147
12 0 NaN NaN caipu/102005.jpg 1147
13 0 NaN NaN caipu/602002.jpg 1147
14 0 NaN NaN caipu/106003.jpg 1147
15 0 NaN NaN caipu/205003.jpg 1147
16 0 NaN NaN caipu/301004.jpg 1147
17 0 NaN NaN caipu/205004.jpg 1147
18 0 NaN NaN caipu/302002.jpg 1147
19 0 NaN NaN caipu/401001.jpg 1147
20 0 NaN NaN caipu/502003.jpg 1147
21 0 NaN NaN caipu/601001.jpg 1147
22 0 NaN NaN caipu/102004.jpg 1166
23 0 NaN NaN caipu/201002.jpg 1147
24 0 NaN NaN caipu/302001.jpg 1147
25 0 NaN NaN caipu/104003.jpg 1166
26 0 NaN NaN caipu/204006.jpg 1147
27 0 NaN NaN caipu/203002.jpg 1147
28 0 NaN NaN caipu/203001.jpg 1094
29 0 NaN NaN caipu/202005.jpg 1166
... ... ... ... ... ...
2749 0 NaN NaN caipu/103005.jpg 1153
2750 0 NaN NaN caipu/303003.jpg 1153
2751 0 NaN NaN caipu/101006.jpg 1133
2752 0 NaN NaN caipu/603005.jpg 1133
2753 0 NaN NaN caipu/101006.jpg 1112
2754 0 NaN NaN caipu/103003.jpg 1112
2755 0 NaN NaN caipu/404002.jpg 1112
2756 0 NaN NaN caipu/303004.jpg 1112
2757 0 NaN NaN caipu/202003.jpg 1112
2758 0 NaN NaN caipu/103005.jpg 1112
2759 0 NaN NaN caipu/603004.jpg 1133
2760 0 NaN NaN caipu/402002.jpg 1133
2761 0 NaN NaN caipu/202006.jpg 1112
2762 0 NaN NaN caipu/202001.jpg 1112
2763 0 NaN NaN caipu/205003.jpg 1112
2764 0 NaN NaN caipu/502004.jpg 1112
2765 0 NaN NaN caipu/201001.jpg 1112
2766 0 NaN NaN caipu/601005.jpg 1112
2767 0 NaN NaN caipu/105002.jpg 1112
2768 0 NaN NaN caipu/204005.jpg 1112
2769 0 NaN NaN caipu/204003.jpg 1112
2770 0 NaN NaN caipu/304005.jpg 1112
2771 0 NaN NaN caipu/103002.jpg 1138
2772 0 NaN NaN caipu/103005.jpg 1138
2773 0 NaN NaN caipu/201004.jpg 1138
2774 0 NaN NaN caipu/601005.jpg 1138
2775 0 NaN NaN caipu/201006.jpg 1138
2776 0 NaN NaN caipu/404005.jpg 1138
2777 0 NaN NaN caipu/302003.jpg 1138
2778 0 NaN NaN caipu/302006.jpg 1138
[2779 rows x 19 columns]
2.header:表示选择哪一行作为列索引, 默认为第一行, 当header不为0时, 会将默认为列索引之前的行全部删掉不读;
data = pd.read_excel(r'C:\Users\ibm\Desktop\meal_order_detail.xlsx',
sheet_name=0, header=2)
print(data)
2958 417 609957 NA NA.1 蒙古烤羊腿 0 1 48 NA.2 \
0 2961 417 609950 NaN NaN 大蒜苋菜 0 1 30 NaN
1 2966 417 610038 NaN NaN 芝麻烤紫菜 0 1 25 NaN
2 2968 417 610003 NaN NaN 蒜香包 0 1 13 NaN
3 1899 301 610019 NaN NaN 白斩鸡 0 1 88 NaN
4 1902 301 609991 NaN NaN 香烤牛排 0 1 55 NaN
5 1906 301 609983 NaN NaN 干锅田鸡 0 1 88 NaN
6 1907 301 609981 NaN NaN 桂圆枸杞鸽子汤 0 1 48 NaN
7 1908 301 610030 NaN NaN 番茄有机花菜 0 1 32 NaN
8 1910 301 610011 NaN NaN 白饭/大碗 0 1 10 NaN
9 2916 413 609966 NaN NaN 芝士烩波士顿龙虾 0 1 175 NaN
10 2919 413 609965 NaN NaN 葱姜炒蟹 0 1 109 NaN
11 2921 413 609936 NaN NaN 皮蛋瘦肉粥 0 1 16 NaN
12 2923 413 609978 NaN NaN 爆炒鳝碌 0 1 55 NaN
13 2925 413 609983 NaN NaN 干锅田鸡 0 1 88 NaN
14 2927 413 610050 NaN NaN 番茄甘蓝 0 1 33 NaN
15 2926 413 609984 NaN NaN 重庆特色油烧兔 0 1 69 NaN
16 2928 413 610013 NaN NaN 番茄炖秋葵 0 1 35 NaN
17 2930 413 610032 NaN NaN 长城窖酿解百纳红酒干红葡萄酒 0 1 35 NaN
18 2932 413 609973 NaN NaN 紫薯面包卷 0 1 20 NaN
19 2934 413 610007 NaN NaN 桂圆肉红豆八宝饭 0 1 39 NaN
20 2938 415 609964 NaN NaN 避风塘炒蟹 0 1 48 NaN
21 2935 413 609992 NaN NaN 番茄炖牛腩\r\n\r\n\r\n 0 1 35 NaN
22 2936 413 610012 NaN NaN 香菇鹌鹑蛋 0 1 39 NaN
23 2940 415 610064 NaN NaN 花蛤蒸蛋 0 1 37 NaN
24 2937 413 610023 NaN NaN 啤酒鸭 0 1 48 NaN
25 2939 413 609931 NaN NaN 焖猪手 0 1 58 NaN
26 2643 392 609930 NaN NaN 豌豆薯仔猪骨汤 0 1 39 NaN
27 2942 415 609959 NaN NaN 小炒羊腰\r\n\r\n\r\n 0 1 36 NaN
28 2652 392 609936 NaN NaN 皮蛋瘦肉粥 0 1 16 NaN
29 2650 392 609935 NaN NaN 山药养生粥 0 1 19 NaN
... ... ... ... .. ... ... .. .. ... ...
2747 6335 732 609944 NaN NaN 水煮鱼 0 1 65 NaN
2748 6336 732 609952 NaN NaN 美妙绝伦之白莲花 0 1 29 NaN
2749 5074 616 609970 NaN NaN 麻辣小龙虾 0 1 99 NaN
2750 5075 616 610001 NaN NaN 土豆西红柿汤面 0 1 13 NaN
2751 6088 716 609970 NaN NaN 麻辣小龙虾 0 1 99 NaN
2752 6091 716 609942 NaN NaN 辣炒鱿鱼 0 1 58 NaN
2753 6094 716 609946 NaN NaN 谷稻小庄 0 1 38 NaN
2754 6098 716 609953 NaN NaN 凉拌菠菜 0 1 27 NaN
2755 6106 716 609957 NaN NaN 蒙古烤羊腿\r\n\r\n\r\n 0 1 48 NaN
2756 6103 716 609944 NaN NaN 水煮鱼 0 1 65 NaN
2757 5076 616 610000 NaN NaN 酸辣汤面 0 1 16 NaN
2758 5080 616 610033 NaN NaN 张裕葡萄酒张裕赤霞珠干红\r\n\r\n\r\n 0 1 32 NaN
2759 6111 716 609960 NaN NaN 白胡椒胡萝卜羊肉汤 0 1 35 NaN
2760 6115 716 609955 NaN NaN 红酒炖羊肉 0 1 108 NaN
2761 6120 716 609983 NaN NaN 干锅田鸡 0 1 88 NaN
2762 6116 716 609974 NaN NaN 南瓜枸杞小饼干 0 1 19 NaN
2763 6125 716 609991 NaN NaN 香烤牛排\r\n\r\n\r\n 0 1 55 NaN
2764 6127 716 610011 NaN NaN 白饭/大碗 0 1 10 NaN
2765 6131 716 610038 NaN NaN 芝麻烤紫菜 0 1 25 NaN
2766 6128 716 610022 NaN NaN 杭椒鸡珍 0 1 58 NaN
2767 6135 716 610020 NaN NaN 泡椒凤爪\r\n\r\n\r\n 0 1 58 NaN
2768 6137 716 610031 NaN NaN 糖醋蕃茄溜青花 0 1 33 NaN
2769 6734 774 609941 NaN NaN 清蒸海鱼 0 1 78 NaN
2770 6736 774 609944 NaN NaN 水煮鱼 0 1 65 NaN
2771 6739 774 609994 NaN NaN 独家薄荷鲜虾牛肉卷\r\n\r\n\r\n 0 1 45 NaN
2772 6750 774 610011 NaN NaN 白饭/大碗 0 1 10 NaN
2773 6742 774 609996 NaN NaN 牛尾汤 0 1 40 NaN
2774 6756 774 609949 NaN NaN 意文柠檬汁 0 1 13 NaN
2775 6763 774 610014 NaN NaN 金玉良缘 0 1 30 NaN
2776 6764 774 610017 NaN NaN 酸辣藕丁 0 1 33 NaN
2016-08-01 11:07:07 NA.3 NA.4 NA.5 0.1 NA.6 NA.7 caipu/202003.jpg \
0 2016-08-01 11:07:40 NaN NaN NaN 0 NaN NaN caipu/303001.jpg
1 2016-08-01 11:11:11 NaN NaN NaN 0 NaN NaN caipu/105002.jpg
2 2016-08-01 11:11:30 NaN NaN NaN 0 NaN NaN caipu/503002.jpg
3 2016-08-01 11:15:57 NaN NaN NaN 0 NaN NaN caipu/204002.jpg
4 2016-08-01 11:19:12 NaN NaN NaN 0 NaN NaN caipu/201001.jpg
5 2016-08-01 11:22:21 NaN NaN NaN 0 NaN NaN caipu/205003.jpg
6 2016-08-01 11:22:53 NaN NaN NaN 0 NaN NaN caipu/205001.jpg
7 2016-08-01 11:23:56 NaN NaN NaN 0 NaN NaN caipu/304004.jpg
8 2016-08-01 11:31:15 NaN NaN NaN 0 NaN NaN caipu/601005.jpg
9 2016-08-01 12:42:52 NaN NaN NaN 0 NaN NaN caipu/101001.jpg
10 2016-08-01 12:43:21 NaN NaN NaN 0 NaN NaN caipu/102005.jpg
11 2016-08-01 12:43:34 NaN NaN NaN 0 NaN NaN caipu/602002.jpg
12 2016-08-01 12:44:08 NaN NaN NaN 0 NaN NaN caipu/106003.jpg
13 2016-08-01 12:44:12 NaN NaN NaN 0 NaN NaN caipu/205003.jpg
14 2016-08-01 12:45:09 NaN NaN NaN 0 NaN NaN caipu/301004.jpg
15 2016-08-01 12:45:24 NaN NaN NaN 0 NaN NaN caipu/205004.jpg
16 2016-08-01 12:46:26 NaN NaN NaN 0 NaN NaN caipu/302002.jpg
17 2016-08-01 12:48:48 NaN NaN NaN 0 NaN NaN caipu/401001.jpg
18 2016-08-01 12:49:27 NaN NaN NaN 0 NaN NaN caipu/502003.jpg
19 2016-08-01 12:50:03 NaN NaN NaN 0 NaN NaN caipu/601001.jpg
20 2016-08-01 12:51:38 NaN NaN NaN 0 NaN NaN caipu/102004.jpg
21 2016-08-01 12:51:46 NaN NaN NaN 0 NaN NaN caipu/201002.jpg
22 2016-08-01 12:52:18 NaN NaN NaN 0 NaN NaN caipu/302001.jpg
23 2016-08-01 12:52:37 NaN NaN NaN 0 NaN NaN caipu/104003.jpg
24 2016-08-01 12:53:39 NaN NaN NaN 0 NaN NaN caipu/204006.jpg
25 2016-08-01 12:54:30 NaN NaN NaN 0 NaN NaN caipu/203002.jpg
26 2016-08-01 12:58:44 NaN NaN NaN 0 NaN NaN caipu/203001.jpg
27 2016-08-01 12:59:03 NaN NaN NaN 0 NaN NaN caipu/202005.jpg
28 2016-08-01 12:59:16 NaN NaN NaN 0 NaN NaN caipu/602002.jpg
29 2016-08-01 12:59:26 NaN NaN NaN 0 NaN NaN caipu/602001.jpg
... ... ... ... ... ... ... ... ...
2747 2016-08-10 20:19:03 NaN NaN NaN 0 NaN NaN caipu/103005.jpg
2748 2016-08-10 20:19:22 NaN NaN NaN 0 NaN NaN caipu/303003.jpg
2749 2016-08-10 20:37:48 NaN NaN NaN 0 NaN NaN caipu/101006.jpg
2750 2016-08-10 20:39:37 NaN NaN NaN 0 NaN NaN caipu/603005.jpg
2751 2016-08-10 20:41:10 NaN NaN NaN 0 NaN NaN caipu/101006.jpg
2752 2016-08-10 20:41:29 NaN NaN NaN 0 NaN NaN caipu/103003.jpg
2753 2016-08-10 20:46:41 NaN NaN NaN 0 NaN NaN caipu/404002.jpg
2754 2016-08-10 20:47:14 NaN NaN NaN 0 NaN NaN caipu/303004.jpg
2755 2016-08-10 20:47:17 NaN NaN NaN 0 NaN NaN caipu/202003.jpg
2756 2016-08-10 20:47:36 NaN NaN NaN 0 NaN NaN caipu/103005.jpg
2757 2016-08-10 20:48:31 NaN NaN NaN 0 NaN NaN caipu/603004.jpg
2758 2016-08-10 20:49:20 NaN NaN NaN 0 NaN NaN caipu/402002.jpg
2759 2016-08-10 20:50:11 NaN NaN NaN 0 NaN NaN caipu/202006.jpg
2760 2016-08-10 20:50:12 NaN NaN NaN 0 NaN NaN caipu/202001.jpg
2761 2016-08-10 20:51:37 NaN NaN NaN 0 NaN NaN caipu/205003.jpg
2762 2016-08-10 20:51:42 NaN NaN NaN 0 NaN NaN caipu/502004.jpg
2763 2016-08-10 20:52:09 NaN NaN NaN 0 NaN NaN caipu/201001.jpg
2764 2016-08-10 20:52:12 NaN NaN NaN 0 NaN NaN caipu/601005.jpg
2765 2016-08-10 20:53:09 NaN NaN NaN 0 NaN NaN caipu/105002.jpg
2766 2016-08-10 20:53:26 NaN NaN NaN 0 NaN NaN caipu/204005.jpg
2767 2016-08-10 20:56:10 NaN NaN NaN 0 NaN NaN caipu/204003.jpg
2768 2016-08-10 20:57:11 NaN NaN NaN 0 NaN NaN caipu/304005.jpg
2769 2016-08-10 21:50:35 NaN NaN NaN 0 NaN NaN caipu/103002.jpg
2770 2016-08-10 21:53:17 NaN NaN NaN 0 NaN NaN caipu/103005.jpg
2771 2016-08-10 21:55:58 NaN NaN NaN 0 NaN NaN caipu/201004.jpg
2772 2016-08-10 21:56:24 NaN NaN NaN 0 NaN NaN caipu/601005.jpg
2773 2016-08-10 21:56:48 NaN NaN NaN 0 NaN NaN caipu/201006.jpg
2774 2016-08-10 22:01:52 NaN NaN NaN 0 NaN NaN caipu/404005.jpg
2775 2016-08-10 22:03:58 NaN NaN NaN 0 NaN NaN caipu/302003.jpg
2776 2016-08-10 22:04:30 NaN NaN NaN 0 NaN NaN caipu/302006.jpg
1442
0 1442
1 1442
2 1442
3 1095
4 1095
5 1095
6 1095
7 1095
8 1095
9 1147
10 1147
11 1147
12 1147
13 1147
14 1147
15 1147
16 1147
17 1147
18 1147
19 1147
20 1166
21 1147
22 1147
23 1166
24 1147
25 1147
26 1094
27 1166
28 1094
29 1094
... ...
2747 1153
2748 1153
2749 1133
2750 1133
2751 1112
2752 1112
2753 1112
2754 1112
2755 1112
2756 1112
2757 1133
2758 1133
2759 1112
2760 1112
2761 1112
2762 1112
2763 1112
2764 1112
2765 1112
2766 1112
2767 1112
2768 1112
2769 1138
2770 1138
2771 1138
2772 1138
2773 1138
2774 1138
2775 1138
2776 1138
[2777 rows x 19 columns]
3.当文件中没有给出表头的时候,需要将header设置为None, 并且传入与列数量一致的list,
name=[ ]
data = pd.read_excel(r'C:\Users\ibm\Desktop\meal_order_detail.xlsx',
names=np.arange(19),
header=None)
print(data.head())
0 1 2 3 4 \
0 detail_id order_id dishes_id logicprn_name parent_class_name
1 2956 417 610062 NaN NaN
2 2958 417 609957 NaN NaN
3 2961 417 609950 NaN NaN
4 2966 417 610038 NaN NaN
5 6 7 8 9 10 \
0 dishes_name itemis_add counts amounts cost place_order_time
1 蒜蓉生蚝 0 1 49 NaN 2016-08-01 11:05:36
2 蒙古烤羊腿 0 1 48 NaN 2016-08-01 11:07:07
3 大蒜苋菜 0 1 30 NaN 2016-08-01 11:07:40
4 芝麻烤紫菜 0 1 25 NaN 2016-08-01 11:11:11
11 12 13 14 15 16 \
0 discount_amt discount_reason kick_back add_inprice add_info bar_code
1 NaN NaN NaN 0 NaN NaN
2 NaN NaN NaN 0 NaN NaN
3 NaN NaN NaN 0 NaN NaN
4 NaN NaN NaN 0 NaN NaN
17 18
0 picture_file emp_id
1 caipu/104001.jpg 1442
2 caipu/202003.jpg 1442
3 caipu/303001.jpg 1442
4 caipu/105002.jpg 1442
4.skiprows:
data = pd.read_excel(r'C:\Users\ibm\Desktop\meal_order_detail.xlsx',
skiprows=[1, 10], header=0)
# print(data.head(6)) # 从头开始读,读前几行信息
print(data.tail(5)) # 从尾部读,读后几行信息
detail_id order_id dishes_id logicprn_name parent_class_name \
2772 6750 774 610011 NaN NaN
2773 6742 774 609996 NaN NaN
2774 6756 774 609949 NaN NaN
2775 6763 774 610014 NaN NaN
2776 6764 774 610017 NaN NaN
dishes_name itemis_add counts amounts cost place_order_time \
2772 白饭/大碗 0 1 10 NaN 2016-08-10 21:56:24
2773 牛尾汤 0 1 40 NaN 2016-08-10 21:56:48
2774 意文柠檬汁 0 1 13 NaN 2016-08-10 22:01:52
2775 金玉良缘 0 1 30 NaN 2016-08-10 22:03:58
2776 酸辣藕丁 0 1 33 NaN 2016-08-10 22:04:30
discount_amt discount_reason kick_back add_inprice add_info \
2772 NaN NaN NaN 0 NaN
2773 NaN NaN NaN 0 NaN
2774 NaN NaN NaN 0 NaN
2775 NaN NaN NaN 0 NaN
2776 NaN NaN NaN 0 NaN
bar_code picture_file emp_id
2772 NaN caipu/601005.jpg 1138
2773 NaN caipu/201006.jpg 1138
2774 NaN caipu/404005.jpg 1138
2775 NaN caipu/302003.jpg 1138
2776 NaN caipu/302006.jpg 1138
读取csv文件
1.csv属于文本文件, 逗号分隔符文件,编码一般为gbk;
2.read_csv方法中参数说明:
1.sep: 元素分隔符,csv文件中默认分隔符为逗号;
2.engine:底层编译方式,默认为c语言,如果遇到编码问题,可以尝试将engine改为Python;
order = pd.read_csv(r'C:\Users\ibm\Desktop\meal_order_info.csv', sep=',', encoding='gbk',
engine='python' )
print(order.head())
info_id emp_id number_consumers mode dining_table_id \
0 417 1442 4 NaN 1501
1 301 1095 3 NaN 1430
2 413 1147 6 NaN 1488
3 415 1166 4 NaN 1502
4 392 1094 10 NaN 1499
dining_table_name expenditure dishes_count accounts_payable \
0 1022 165 5 165
1 1031 321 6 321
2 1009 854 15 854
3 1023 466 10 466
4 1020 704 24 704
use_start_time ... lock_time cashier_id pc_id order_number \
0 2016/8/1 11:05 ... 2016/8/1 11:11 NaN NaN NaN
1 2016/8/1 11:15 ... 2016/8/1 11:31 NaN NaN NaN
2 2016/8/1 12:42 ... 2016/8/1 12:54 NaN NaN NaN
3 2016/8/1 12:51 ... 2016/8/1 13:08 NaN NaN NaN
4 2016/8/1 12:58 ... 2016/8/1 13:07 NaN NaN NaN
org_id print_doc_bill_num lock_table_info order_status phone \
0 330 NaN NaN 1 18688880641
1 328 NaN NaN 1 18688880174
2 330 NaN NaN 1 18688880276
3 330 NaN NaN 1 18688880231
4 330 NaN NaN 1 18688880173
name
0 苗宇怡
1 赵颖
2 徐毅凡
3 张大鹏
4 孙熙凯
[5 rows x 21 columns]
扩展:读取文本文件的方法:.txt, .csv
pd.read_table(r'C:\Users\ibm\Desktop\meal_order_info.csv', sep=',', encoding='gbk',
engine='python')
info_id | emp_id | number_consumers | mode | dining_table_id | dining_table_name | expenditure | dishes_count | accounts_payable | use_start_time | ... | lock_time | cashier_id | pc_id | order_number | org_id | print_doc_bill_num | lock_table_info | order_status | phone | name | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 417 | 1442 | 4 | NaN | 1501 | 1022 | 165 | 5 | 165 | 2016/8/1 11:05 | ... | 2016/8/1 11:11 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880641 | 苗宇怡 |
1 | 301 | 1095 | 3 | NaN | 1430 | 1031 | 321 | 6 | 321 | 2016/8/1 11:15 | ... | 2016/8/1 11:31 | NaN | NaN | NaN | 328 | NaN | NaN | 1 | 18688880174 | 赵颖 |
2 | 413 | 1147 | 6 | NaN | 1488 | 1009 | 854 | 15 | 854 | 2016/8/1 12:42 | ... | 2016/8/1 12:54 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880276 | 徐毅凡 |
3 | 415 | 1166 | 4 | NaN | 1502 | 1023 | 466 | 10 | 466 | 2016/8/1 12:51 | ... | 2016/8/1 13:08 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880231 | 张大鹏 |
4 | 392 | 1094 | 10 | NaN | 1499 | 1020 | 704 | 24 | 704 | 2016/8/1 12:58 | ... | 2016/8/1 13:07 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880173 | 孙熙凯 |
5 | 381 | 1243 | 4 | NaN | 1487 | 1008 | 239 | 7 | 239 | 2016/8/1 13:15 | ... | 2016/8/1 13:23 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880441 | 沈晓雯 |
6 | 429 | 1452 | 4 | NaN | 1501 | 1022 | 699 | 15 | 699 | 2016/8/1 13:17 | ... | 2016/8/1 13:34 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880651 | 苗泽坤 |
7 | 433 | 1109 | 8 | NaN | 1490 | 1011 | 511 | 14 | 511 | 2016/8/1 13:38 | ... | 2016/8/1 13:50 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880212 | 李达明 |
8 | 569 | 1143 | 6 | NaN | 1488 | 1009 | 326 | 9 | 326 | 2016/8/1 17:06 | ... | 2016/8/1 17:18 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880272 | 陈有浩 |
9 | 655 | 1268 | 8 | NaN | 1492 | 1013 | 263 | 10 | 263 | 2016/8/1 17:32 | ... | 2016/8/1 17:44 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880466 | 沈丹丹 |
10 | 577 | 1150 | 7 | NaN | 1492 | 1013 | 380 | 7 | 380 | 2016/8/1 17:37 | ... | 2016/8/1 17:50 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880279 | 胡煜 |
11 | 622 | 1220 | 4 | NaN | 1483 | 1004 | 164 | 7 | 164 | 2016/8/1 17:40 | ... | 2016/8/1 17:47 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880419 | 徐骏太 |
12 | 651 | 1593 | 3 | NaN | 1485 | 1006 | 137 | 5 | 137 | 2016/8/1 18:12 | ... | 2016/8/1 18:20 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880792 | 高僖桐 |
13 | 694 | 1122 | 8 | NaN | 1492 | 1013 | 819 | 10 | 819 | 2016/8/1 18:26 | ... | 2016/8/1 18:37 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880316 | 朱钰 |
14 | 462 | 1187 | 7 | NaN | 1490 | 1011 | 431 | 13 | 431 | 2016/8/1 18:45 | ... | 2016/8/1 18:49 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880366 | 孙新潇 |
15 | 458 | 1455 | 2 | NaN | 1480 | 1001 | 700 | 14 | 700 | 2016/8/1 19:27 | ... | 2016/8/1 19:31 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880654 | 牛长金 |
16 | 467 | 1213 | 10 | NaN | 1495 | 1016 | 615 | 15 | 615 | 2016/8/1 19:40 | ... | NaN | NaN | NaN | NaN | 330 | NaN | NaN | 0 | 18688880412 | 赵英 |
17 | 562 | 1552 | 8 | NaN | 1508 | 1029 | 366 | 7 | 366 | 2016/8/1 19:44 | ... | 2016/8/1 19:57 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880751 | 王嘉淏 |
18 | 486 | 1156 | 7 | NaN | 1492 | 1013 | 443 | 12 | 443 | 2016/8/1 20:31 | ... | 2016/8/1 20:36 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880285 | 张芳语 |
19 | 517 | 1008 | 2 | NaN | 1480 | 1001 | 294 | 7 | 294 | 2016/8/1 21:11 | ... | 2016/8/1 21:21 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880027 | 许和怡 |
20 | 452 | 1114 | 8 | NaN | 1492 | 1013 | 167 | 7 | 167 | 2016/8/1 21:19 | ... | 2016/8/1 21:29 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880193 | 邵昱笑 |
21 | 448 | 1449 | 6 | NaN | 1505 | 1026 | 609 | 14 | 609 | 2016/8/1 21:37 | ... | 2016/8/1 21:52 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880648 | 苗秋兰 |
22 | 193 | 1084 | 3 | NaN | 1401 | 1005 | 238 | 8 | 238 | 2016/8/2 11:20 | ... | 2016/8/2 11:33 | NaN | NaN | NaN | 328 | NaN | NaN | 1 | 18688880163 | 张靖雯 |
23 | 166 | 986 | 2 | NaN | 1402 | 1003 | 260 | 7 | 260 | 2016/8/2 11:22 | ... | 2016/8/2 11:30 | NaN | NaN | NaN | 328 | NaN | NaN | 1 | 18688880005 | 莫子建 |
24 | 342 | 1450 | 2 | NaN | 1402 | 1003 | 109 | 5 | 109 | 2016/8/2 11:58 | ... | 2016/8/2 12:10 | NaN | NaN | NaN | 328 | NaN | NaN | 1 | 18688880649 | 苗家畅 |
25 | 260 | 990 | 4 | NaN | 1421 | 1022 | 302 | 9 | 302 | 2016/8/2 12:35 | ... | 2016/8/2 12:53 | NaN | NaN | NaN | 328 | NaN | NaN | 1 | 18688880009 | 张馥雨 |
26 | 367 | 1119 | 4 | NaN | 1483 | 1004 | 639 | 13 | 639 | 2016/8/2 12:58 | ... | 2016/8/2 13:17 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880198 | 康雅欣 |
27 | 368 | 1125 | 4 | NaN | 1500 | 1021 | 211 | 6 | 211 | 2016/8/2 13:08 | ... | 2016/8/2 13:22 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880317 | 周子轩 |
28 | 365 | 992 | 2 | NaN | 460 | 1002 | 146 | 6 | 146 | 2016/8/2 13:19 | ... | 2016/8/2 13:29 | NaN | NaN | NaN | 304 | NaN | NaN | 1 | 18688880011 | 姜晗昱 |
29 | 171 | 1463 | 3 | NaN | 1403 | 1004 | 299 | 10 | 299 | 2016/8/2 13:51 | ... | 2016/8/2 14:00 | NaN | NaN | NaN | 328 | NaN | NaN | 1 | 18688880662 | 范小萱 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
915 | 387 | 1095 | 8 | NaN | 1490 | 1011 | 551 | 16 | 551 | 2016/8/30 12:00 | ... | 2016/8/30 12:12 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880307 | 任红娇 |
916 | 168 | 990 | 2 | NaN | 1402 | 1003 | 1105 | 9 | 1105 | 2016/8/30 12:07 | ... | 2016/8/30 12:19 | NaN | NaN | NaN | 328 | NaN | NaN | 1 | 18688880009 | 张馥雨 |
917 | 446 | 1166 | 2 | NaN | 1482 | 1003 | 143 | 6 | 143 | 2016/8/30 18:06 | ... | 2016/8/30 18:15 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880231 | 张大鹏 |
918 | 735 | 1132 | 2 | NaN | 1481 | 1002 | 270 | 8 | 270 | 2016/8/30 18:13 | ... | 2016/8/30 18:18 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880120 | 陆涛 |
919 | 671 | 1084 | 2 | NaN | 1482 | 1003 | 163 | 8 | 163 | 2016/8/30 19:25 | ... | 2016/8/30 19:44 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880104 | 任文琪 |
920 | 603 | 1102 | 3 | NaN | 1485 | 1006 | 459 | 11 | 459 | 2016/8/30 19:30 | ... | 2016/8/30 19:45 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880110 | 陶璐 |
921 | 661 | 1096 | 8 | NaN | 1492 | 1013 | 812 | 13 | 812 | 2016/8/30 20:00 | ... | 2016/8/30 20:18 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880108 | 卓艳妍 |
922 | 565 | 1105 | 6 | NaN | 1489 | 1010 | 717 | 8 | 717 | 2016/8/30 20:14 | ... | 2016/8/30 20:30 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880111 | 黄哲 |
923 | 539 | 1110 | 10 | NaN | 1519 | 1040 | 238 | 6 | 238 | 2016/8/30 20:30 | ... | 2016/8/30 20:43 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880312 | 李佩珊 |
924 | 636 | 1089 | 2 | NaN | 1480 | 1001 | 349 | 9 | 349 | 2016/8/30 20:52 | ... | 2016/8/30 21:10 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880305 | 王静宇 |
925 | 461 | 1075 | 3 | NaN | 1484 | 1005 | 303 | 8 | 303 | 2016/8/30 21:46 | ... | 2016/8/30 21:56 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880101 | 赵玉倩 |
926 | 777 | 1076 | 7 | NaN | 1491 | 1012 | 824 | 24 | 824 | 2016/8/30 21:49 | ... | 2016/8/30 21:59 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880201 | 赵倩 |
927 | 515 | 1161 | 2 | NaN | 1482 | 1003 | 143 | 5 | 143 | 2016/8/30 21:57 | ... | 2016/8/30 22:00 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880329 | 卢玲 |
928 | 289 | 991 | 2 | NaN | 1402 | 1003 | 121 | 5 | 121 | 2016/8/31 11:52 | ... | 2016/8/31 12:01 | NaN | NaN | NaN | 328 | NaN | NaN | 1 | 18688880010 | 麦凯泽 |
929 | 419 | 1071 | 6 | NaN | 1489 | 1010 | 264 | 6 | 264 | 2016/8/31 12:19 | ... | 2016/8/31 12:29 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880096 | 姜妮妮 |
930 | 395 | 1021 | 4 | NaN | 1485 | 1006 | 617 | 13 | 617 | 2016/8/31 12:51 | ... | 2016/8/31 13:02 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880040 | 叶潇逸 |
931 | 411 | 1097 | 4 | NaN | 1485 | 1006 | 214 | 2 | 214 | 2016/8/31 13:29 | ... | NaN | NaN | NaN | NaN | 330 | NaN | NaN | 0 | 18688880208 | 原程心 |
932 | 336 | 996 | 2 | NaN | 1406 | 1007 | 131 | 5 | 131 | 2016/8/31 13:59 | ... | 2016/8/31 14:06 | NaN | NaN | NaN | 328 | NaN | NaN | 1 | 18688880015 | 张昭阳 |
933 | 507 | 1128 | 8 | NaN | 1506 | 1027 | 474 | 10 | 474 | 2016/8/31 17:50 | ... | 2016/8/31 18:00 | NaN | NaN | NaN | 330 | NaN | NaN | 2 | 18688880318 | 余思言 |
934 | 763 | 1135 | 4 | NaN | 1484 | 1005 | 296 | 7 | 296 | 2016/8/31 18:05 | ... | 2016/8/31 18:09 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880121 | 方祥文 |
935 | 599 | 1102 | 8 | NaN | 1491 | 1012 | 729 | 19 | 729 | 2016/8/31 18:05 | ... | 2016/8/31 18:18 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880110 | 关凯月 |
936 | 721 | 1129 | 6 | NaN | 1486 | 1007 | 624 | 15 | 624 | 2016/8/31 18:28 | ... | 2016/8/31 18:42 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880119 | 夏雪 |
937 | 533 | 1118 | 1 | NaN | 1482 | 1003 | 717 | 11 | 717 | 2016/8/31 18:40 | ... | 2016/8/31 18:57 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880215 | 黄青芸 |
938 | 551 | 1086 | 8 | NaN | 1519 | 1040 | 1101 | 19 | 1101 | 2016/8/31 19:14 | ... | 2016/8/31 19:19 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880304 | 张小雨 |
939 | 695 | 1096 | 6 | NaN | 1486 | 1007 | 810 | 16 | 810 | 2016/8/31 20:25 | ... | 2016/8/31 20:39 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880108 | 陈宇 |
940 | 641 | 1095 | 8 | NaN | 1492 | 1013 | 679 | 12 | 679 | 2016/8/31 21:23 | ... | 2016/8/31 21:31 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880307 | 李靖 |
941 | 672 | 1089 | 6 | NaN | 1489 | 1010 | 800 | 24 | 800 | 2016/8/31 21:24 | ... | 2016/8/31 21:56 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880305 | 莫言 |
942 | 692 | 1155 | 8 | NaN | 1492 | 1013 | 735 | 10 | 735 | 2016/8/31 21:25 | ... | 2016/8/31 21:33 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880327 | 习一冰 |
943 | 647 | 1094 | 4 | NaN | 1485 | 1006 | 262 | 9 | 262 | 2016/8/31 21:37 | ... | 2016/8/31 21:55 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880207 | 章春华 |
944 | 570 | 1113 | 8 | NaN | 1517 | 1038 | 589 | 13 | 589 | 2016/8/31 21:41 | ... | 2016/8/31 21:32 | NaN | NaN | NaN | 330 | NaN | NaN | 1 | 18688880313 | 唐雅嘉 |
945 rows × 21 columns
保存文件
order.to_excel('11.xlsx')
order.to_csv('11.csv')
作业:
- 删除表格中取值全部为空值的列 或 取值全部相同的列,删完以后结构为多少?
- 该饭店中8月1日一共销售了多少个订单?
- 该饭店中8月份第一周共收入多少钱?
- 该饭店中一共出售多少种菜品,哪种菜品最受欢迎?【请认真思考返回值是否符合逻辑】
- 该饭店中菜品均价为多少?最高价格与最低价格差距多大?
(1) 删除全为空值的列
detail_count = detail.count()
mask = detail_count==0
drop_nan_index = detail_count[mask].index
print(drop_nan_index)
Index(['logicprn_name', 'parent_class_name', 'cost', 'discount_amt',
'discount_reason', 'kick_back', 'add_info', 'bar_code'],
dtype='object')
detail.drop(labels=list(drop_nan_index), axis=1, inplace=True)
print(detail.shape)
(2779, 11)
(2)全部为一样的值:
mask2 = detail.astype('str').describe().loc['unique',:] ==1
# mask2 = detail.astype('str').describe().loc['unique',:] ==1
column_ser = pd.Series(list(mask2.index))
print(column_ser)
0 detail_id
1 order_id
2 dishes_id
3 dishes_name
4 itemis_add
5 counts
6 amounts
7 place_order_time
8 add_inprice
9 picture_file
10 emp_id
dtype: object
drop_index_unique = column_ser.loc[mask2.values].values
detail.drop(labels=drop_index_unique, axis=1, inplace=True)
print(detail.shape)
(2779, 9)
2.该饭店中8月1日一共销售了多少个订单?
df = detail.loc[detail['place_order_time'].dt.day==1, :]
# df['order_id'].value_counts().size # 去重
df['order_id'].unique().size
22
- 该饭店中8月份第一周共收入多少钱?
detail['pay_num'] = detail['amounts'] * detail['counts']
df2 = detail.loc[detail['place_order_time'].dt.day<8, 'pay_num'].sum()
print(df2)
104568
4.该饭店中一共出售多少种菜品,哪种菜品最受欢迎?【请认真思考返回值是否符合逻辑】
detail['dishes_id'].value_counts()
detail.loc[detail['dishes_id']== 609953, 'dishes_name'].head()
51 凉拌菠菜
99 凉拌菠菜
110 凉拌菠菜
137 凉拌菠菜
202 凉拌菠菜
Name: dishes_name, dtype: object
- 该饭店中菜品均价为多少?最高价格与最低价格差距多大?
drop_dishes_index = detail['amounts'].mean()
print(drop_dishes_index)
print(detail['amounts'].ptp())
45.33717164447643
177