目录
一、numpy库的使用方法
1、利用numpy中的array()创建数组
2、利用numpy中的arange()创建数组
3、随机数组创建
4、查看数组属性
5、数组选取
1、一维数组选取
2、二维数组选取
6、数组重塑及转置
1、一维数组重塑
2、二维数组重塑
3、数组转置
7、数组操作
1、添加数组元素
2、删除数组元素
3、缺失值处理
4、重复值处理
5、数组的拼接及拆分
6、数组运算
二、pandas库的使用方法
1、Series及DataFrame对象使用
1、Series对象
2、DataFrame对象
2、读取查看数据
1、使用pandas读取excel中的数据
2、使用pandas读取csv文件
3、选择性读取数据
3、pandas数据处理
1、数据增删查改
2、缺失值处理
3、处理重复值
4、数据排序
5、装置数据表行列
6、将数据表转换为树形结构
7、数据拼接
8、数据的统计运算
9、数据的分布情况
10、相关系数分析
11、分组数据汇总
12、创建数据透视表
import numpy as np #导入库numpy 命名为np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) #创建多维数组
c = np.array([1, 2, 3, 4]) #创建一维数组
print(a)
print (c)
[[1 2 3]
[4 5 6]
[7 8 9]]
[1 2 3 4]
import numpy as np
a=np.arange(1,20,4)
b=np.arange(10)
c=np.arange(1,6)
print(a)
print(b)
print(c)
[ 1 5 9 13 17]
[0 1 2 3 4 5 6 7 8 9]
[1 2 3 4 5]
import numpy as np
a=np.random.randn(3)
b=np.random.randn(3,2)
c=np.random.rand(5)
d=np.random.rand(2,3)
e=np.random.randint(1,3,4)
f=np.random.randint(1,5,(2,2))
print("a:",a)
print("b:",b)
print("c:",c)
print("d",d)
print("e:",e)
print("f:",f)
a: [-0.08651285 -0.66598846 -1.95221718]
b: [[ 0.80910325 0.27852996]
[ 1.26057639 0.07053796]
[ 1.48869689 -1.73556879]]
c: [0.26452326 0.87471068 0.36306038 0.95570711 0.29538408]
d [[0.05603988 0.6907821 0.33998311]
[0.08633272 0.54519208 0.59673932]]
e: [2 1 1 1]
f: [[1 2]
[4 1]]
import numpy as np
arr=np.array([[1,2],[3,4],[5,6]])
arr1=arr.astype(float) #数组类型转换
print(arr.shape) #数组行列
print(arr.shape[0]) #数组行
print(arr.shape[1]) #数组列
print(arr.size) #数组元素个数
print(arr.dtype) #数组类型
print(arr1,arr1.dtype)
print(arr.ndim) #查看数组维度
(3, 2)
3
2
6
float64
[[1 2 3 4]
[5 6 7 8]]
int32
3
import numpy as np
arr=np.array([6,57,18,95,17,1,12])
print(arr[2])
print(arr[-2])
print(arr[2:])
print(arr[:2])
print(arr[1:6:3])
print(arr[::2])
print(arr[:2:])
print(arr[2::])
18
1
[18 95 17 1 12]
[ 6 57]
[57 17]
[ 6 18 17 12]
[ 6 57]
[18 95 17 1 12]
import numpy as np
arr=np.array([[1,2,3,4],[21,31,41,51],[13,14,15,16],[6,7,8,9]])
print(arr[1,2])
print(arr[2])
print(arr[:,3])
print("1、",arr[1:3])
print("2、",arr[2:])
print("3、",arr[:2])
print("4",arr[:,3:])
print("5",arr[:,:2])
print("6",arr[1:3,2:4])
41
[13 14 15 16]
[ 4 51 16 9]
1、 [[21 31 41 51]
[13 14 15 16]]
2、 [[13 14 15 16]
[ 6 7 8 9]]
3、 [[ 1 2 3 4]
[21 31 41 51]]
4 [[ 4]
[51]
[16]
[ 9]]
5 [[ 1 2]
[21 31]
[13 14]
[ 6 7]]
6 [[41 51]
[15 16]]
import numpy as np
arr=np.array([1,23,4,6,79,8])
a=arr.reshape(2,3)
b=arr.reshape(3,2)
print("a:",a)
print("b:",b)
a: [[ 1 23 4]
[ 6 79 8]]
b: [[ 1 23]
[ 4 6]
[79 8]]
import numpy as np
arr=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
a=arr.reshape(4,3)
b=arr.reshape(2,6)
c=arr.flatten()
d=arr.ravel()
print("a",a)
print("b",b)
print("c",c)
print("d",d)
a [[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
b [[ 1 2 3 4 5 6]
[ 7 8 9 10 11 12]]
c [ 1 2 3 4 5 6 7 8 9 10 11 12]
d [ 1 2 3 4 5 6 7 8 9 10 11 12]
import numpy as np
arr=np.array([[1,2,4,5],[6,7,8,9,],[12,3,21,11]])
print(arr.T)
print()
print(np.transpose(arr))
[[ 1 6 12]
[ 2 7 3]
[ 4 8 21]
[ 5 9 11]]
[[ 1 6 12]
[ 2 7 3]
[ 4 8 21]
[ 5 9 11]]
import numpy as np
arr=np.array([[1,2,3],[4,5,6]])
arr1=np.append(arr,[[7,8,0]])
print(arr1)
print()
print(np.append(arr,[[2,3,4]],axis=0))
print()
print(np.append(arr,[[1,2],[3,4]],axis=1))
print()
print(np.insert(arr,1,[3,4,8]))
print()
print(np.insert(arr,1,[7,8],axis=1))
print()
print(np.insert(arr,2,[8,2,3],axis=0))
[1 2 3 4 5 6 7 8 0]
[[1 2 3]
[4 5 6]
[2 3 4]]
[[1 2 3 1 2]
[4 5 6 3 4]]
[1 3 4 8 2 3 4 5 6]
[[1 7 2 3]
[4 8 5 6]]
[[1 2 3]
[4 5 6]
[8 2 3]]
import numpy as np
arr=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(np.delete(arr,3))
print()
print(np.delete(arr,1,axis=0))
print()
print(np.delete(arr,2,axis=1))
[1 2 3 5 6 7 8 9]
[[1 2 3]
[7 8 9]]
[[1 2]
[4 5]
[7 8]]
import numpy as np
arr=np.array([2,3,5,6,7,np.nan,8,9])
print(arr)
arr[np.isnan(arr)]=0
print()
print(arr)
[ 2. 3. 5. 6. 7. nan 8. 9.]
[2. 3. 5. 6. 7. 0. 8. 9.]
import numpy as np
arr=np.array([2,3,4,5,6,7,2,3,2,4,5,3,2,5,6,2])
print(np.unique(arr))
arr1,counts=np.unique(arr,return_counts=True)
print(counts)
[2 3 4 5 6 7]
[5 3 2 3 2 1]
import numpy as np
arr=np.array([1,2,3,4,6,7,8,5,9,0,8,6])
arr1=np.array([[1,2,3,4],[3,4,7,8]])
arr2=np.array([[5,6,7,8],[8,9,10,12]])
print(np.concatenate((arr1,arr2),axis=0))
print()
print(np.concatenate((arr1,arr2),axis=1))
print()
print(np.hstack((arr1,arr2)))
print()
print(np.vstack((arr1,arr2)))
print()
print(np.hsplit(arr1,2))
print()
print(np.vsplit(arr2,2))
print()
print(np.split(arr,4))
print()
print(np.split(arr,[2,6]))
print()
print(np.split(arr,[2,4,5]))
[[ 1 2 3 4]
[ 3 4 7 8]
[ 5 6 7 8]
[ 8 9 10 12]]
[[ 1 2 3 4 5 6 7 8]
[ 3 4 7 8 8 9 10 12]]
[[ 1 2 3 4 5 6 7 8]
[ 3 4 7 8 8 9 10 12]]
[[ 1 2 3 4]
[ 3 4 7 8]
[ 5 6 7 8]
[ 8 9 10 12]]
[array([[1, 2],
[3, 4]]), array([[3, 4],
[7, 8]])]
[array([[5, 6, 7, 8]]), array([[ 8, 9, 10, 12]])]
[array([1, 2, 3]), array([4, 6, 7]), array([8, 5, 9]), array([0, 8, 6])]
[array([1, 2]), array([3, 4, 6, 7]), array([8, 5, 9, 0, 8, 6])]
[array([1, 2]), array([3, 4]), array([6]), array([7, 8, 5, 9, 0, 8, 6])]
import numpy as np
arr1=np.array([[1,2,3],[2,3,4]])
arr2=np.array([[5,6,7],[8,9,5]])
print(arr1+arr2)
print()
print(arr1*arr2)
print()
print(arr1+3)
print()
print(arr2*2)
print()
print(arr1.sum(),arr1.sum(axis=0),arr1.sum(axis=1))
print()
print(arr1.mean(),arr1.mean(axis=0),arr1.mean(axis=1))
print()
print(arr1.max(),arr1.max(axis=0),arr1.max(axis=1))
[[ 6 8 10]
[10 12 9]]
[[ 5 12 21]
[16 27 20]]
[[4 5 6]
[5 6 7]]
[[10 12 14]
[16 18 10]]
15 [3 5 7] [6 9]
2.5 [1.5 2.5 3.5] [2. 3.]
4 [2 3 4] [3 4]
import pandas as pd
s=pd.Series(['足球','羽毛球','乒乓球','排球'])
s1=pd.Series(['足球','羽毛球','乒乓球','排球'],index=['a1','a2','a3','a4'])
s2=pd.Series({'b1':'足球','b2':'羽毛球','b3':'乒乓球','b4':'排球'})
print(s)
print(s1)
print(s2)
0 足球
1 羽毛球
2 乒乓球
3 排球
dtype: object
a1 足球
a2 羽毛球
a3 乒乓球
a4 排球
dtype: object
b1 足球
b2 羽毛球
b3 乒乓球
b4 排球
dtype: object
import pandas as pd
df=pd.DataFrame(['苹果',3],['梨子',4])
df1=pd.DataFrame([['苹果',3],['梨子',4]],columns=['水果','单价'],index=['a1','a2'])
df2=pd.DataFrame({'水果':['苹果','梨子'],'单价':[2,3]})
df3=pd.DataFrame({'水果':['苹果','梨子'],'单价':[2,3]},index=['b1','b2'])
print(df)
print(df1)
print(df2)
print(df3)
0
梨子 苹果
4 3
水果 单价
a1 苹果 3
a2 梨子 4
水果 单价
0 苹果 2
1 梨子 3
水果 单价
b1 苹果 2
b2 梨子 3
import pandas as pd
data1=pd.read_excel('订单表.xlsx',sheet_name=3) #read_excel(r"文件地址",sheet_name=指定读取第几个位置的sheet)
data2=pd.read_excel('订单表.xlsx',sheet_name=3,header=0)
data3=pd.read_excel('订单表.xlsx',sheet_name=3,header=2)
data4=pd.read_excel('订单表.xlsx',sheet_name=3,header=None)
data5=pd.read_excel('订单表.xlsx',sheet_name=3,index_col=0)
data6=pd.read_excel('订单表.xlsx',sheet_name=3,index_col=2)
data7=pd.read_excel('订单表.xlsx',sheet_name=3,usecols=[3])
data8=pd.read_excel('订单表.xlsx',sheet_name=3,usecols=[1,3])
print("1")
print(data1)
print("2")
print(data2)
print("3")
print(data3)
print("4")
print(data4)
print("5")
print(data5)
print("6")
print(data6)
print("7")
print(data7)
print("8")
print(data8)
1
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
1 d002 马克笔 5盒 300
2 d003 打印机 1台 298
3 d004 点钞机 1台 349
4 d005 复印纸 2箱 100
5 d006 条码纸 6卷 34
2
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
1 d002 马克笔 5盒 300
2 d003 打印机 1台 298
3 d004 点钞机 1台 349
4 d005 复印纸 2箱 100
5 d006 条码纸 6卷 34
3
d002 马克笔 5盒 300
0 d003 打印机 1台 298
1 d004 点钞机 1台 349
2 d005 复印纸 2箱 100
3 d006 条码纸 6卷 34
4
0 1 2 3
0 订单编号 产品 数量 金额
1 d001 投影仪 5台 2000
2 d002 马克笔 5盒 300
3 d003 打印机 1台 298
4 d004 点钞机 1台 349
5 d005 复印纸 2箱 100
6 d006 条码纸 6卷 34
5
产品 数量 金额
订单编号
d001 投影仪 5台 2000
d002 马克笔 5盒 300
d003 打印机 1台 298
d004 点钞机 1台 349
d005 复印纸 2箱 100
d006 条码纸 6卷 34
6
订单编号 产品 金额
数量
5台 d001 投影仪 2000
5盒 d002 马克笔 300
1台 d003 打印机 298
1台 d004 点钞机 349
2箱 d005 复印纸 100
6卷 d006 条码纸 34
7
金额
0 2000
1 300
2 298
3 349
4 100
5 34
8
产品 金额
0 投影仪 2000
1 马克笔 300
2 打印机 298
3 点钞机 349
4 复印纸 100
5 条码纸 34
import pandas as pd
data1=pd.read_csv('订单表.csv')
data2=pd.read_csv('订单表.csv',nrows=2)
print(data1)
print(data2)
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
1 d002 马克笔 5盒 300
2 d003 打印机 1台 298
3 d004 点钞机 1台 349
4 d005 复印纸 2箱 100
5 d006 条码纸 6卷 34
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
1 d002 马克笔 5盒 300
import pandas as pd
data=pd.read_excel('订单表.xlsx',sheet_name=3)
data1=pd.read_excel('订单表.xlsx',sheet_name=3,index_col=0)
print(data.head())
print()
print(data.head(2)) #查看前2行
print()
print(data.shape) #查看行列数
print()
data.info() #查看数据类型
print()
print(data['金额'].dtype)#查看”金额“的数据类型
data['金额']=data['金额'].astype('float64')
print(data.head(2))
print()
print(data1.loc['d001']) #读取索引为d001的数据
print()
print(data.iloc[2]) #读取第3行数据
print()
print(data.iloc[1:5]) #读取第2-5行数据
print()
a=data['金额']<200
print(data[a]) #读取金额小于200的数据
print()
print(data['金额'])
print()
print(data.iloc[:,1:4]) #读取2-4列数据
print()
print(data.iloc[:,[0,3]]) #读取第1和第4列数据
print()
print(data1.loc[['d001', 'd005'], ['产品', '金额']]) #读取'd001', 'd005'的产品和金额数据
print()
print(data1.iloc[[2, 4], [0, 2]]) #读取第3、5行的第一列和第三列数据
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
1 d002 马克笔 5盒 300
2 d003 打印机 1台 298
3 d004 点钞机 1台 349
4 d005 复印纸 2箱 100
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
1 d002 马克笔 5盒 300
(6, 4)
RangeIndex: 6 entries, 0 to 5
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 订单编号 6 non-null object
1 产品 6 non-null object
2 数量 6 non-null object
3 金额 6 non-null int64
dtypes: int64(1), object(3)
memory usage: 320.0+ bytes
int64
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000.0
1 d002 马克笔 5盒 300.0
产品 投影仪
数量 5台
金额 2000
Name: d001, dtype: object
订单编号 d003
产品 打印机
数量 1台
金额 298.0
Name: 2, dtype: object
订单编号 产品 数量 金额
1 d002 马克笔 5盒 300.0
2 d003 打印机 1台 298.0
3 d004 点钞机 1台 349.0
4 d005 复印纸 2箱 100.0
订单编号 产品 数量 金额
4 d005 复印纸 2箱 100.0
5 d006 条码纸 6卷 34.0
0 2000.0
1 300.0
2 298.0
3 349.0
4 100.0
5 34.0
Name: 金额, dtype: float64
产品 数量 金额
0 投影仪 5台 2000.0
1 马克笔 5盒 300.0
2 打印机 1台 298.0
3 点钞机 1台 349.0
4 复印纸 2箱 100.0
5 条码纸 6卷 34.0
订单编号 金额
0 d001 2000.0
1 d002 300.0
2 d003 298.0
3 d004 349.0
4 d005 100.0
5 d006 34.0
产品 金额
订单编号
d001 投影仪 2000
d005 复印纸 100
产品 金额
订单编号
d003 打印机 298
d005 复印纸 100
import pandas as pd
data=pd.read_excel('订单表.xlsx',sheet_name=3)
dataes=pd.read_excel('订单表.xlsx',sheet_name=3,index_col=0)
data=data.head(3)
datas=data
print(data)
print('1')
data1 =data.isin(['d002','马克笔']) #查找'd002','马克笔'所在的位置
print(data1)
print('2')
data2 = data['产品'].isin(['马克笔']) #查找产品中的马克笔
print(data2)
print('3')
data.replace('马克笔', '钢笔', inplace=True) #更改表中数据马克笔为钢笔
print(data)
print('4')
data.replace(['投影仪', '打印机'], '电子设备', inplace=True) #更改表中数据钢笔投影仪, 打印机为电子设备
print(data)
print('5')
datas.replace({'钢笔':'毛笔', 300:98, 298:188},inplace=True) #更改表中数据钢笔为毛笔,300为98,298为188
print(datas)
print('6')
datas['报废年限']=[10,10,5] #增加一列报废年限数据
print(datas)
print('7')
datas.insert(2,'保险期限',[1,1,3]) #插入保险期限到第三列
print(datas)
print('8')
d1=datas.drop(['产品'],axis=1) #删除产品列
print(d1)
print('9')
d2=datas.drop(datas.columns[[2, 5]],axis=1) #删除第三和第五列
print(d2)
print('10')
d3=datas.drop(columns=['数量']) #删除数量列
print(d3)
print('11')
print(dataes,'\n12')
e1=dataes.drop(['d001', 'd004','d002'], axis=0) #删除'd001', 'd004','d002'行
print(e1,'\n13')
e2=dataes.drop(dataes.index[[2,4]],axis=0) #删除第3和第5行
print(e2,'\n14')
e3=dataes.drop(index=['d002','d004']) #删除d002、d004行
print(e3)
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
1 d002 马克笔 5盒 300
2 d003 打印机 1台 298
1
订单编号 产品 数量 金额
0 False False False False
1 True True False False
2 False False False False
2
0 False
1 True
2 False
Name: 产品, dtype: bool
3
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
1 d002 钢笔 5盒 300
2 d003 打印机 1台 298
4
订单编号 产品 数量 金额
0 d001 电子设备 5台 2000
1 d002 钢笔 5盒 300
2 d003 电子设备 1台 298
5
订单编号 产品 数量 金额
0 d001 电子设备 5台 2000
1 d002 毛笔 5盒 98
2 d003 电子设备 1台 188
6
订单编号 产品 数量 金额 报废年限
0 d001 电子设备 5台 2000 10
1 d002 毛笔 5盒 98 10
2 d003 电子设备 1台 188 5
7
订单编号 产品 保险期限 数量 金额 报废年限
0 d001 电子设备 1 5台 2000 10
1 d002 毛笔 1 5盒 98 10
2 d003 电子设备 3 1台 188 5
8
订单编号 保险期限 数量 金额 报废年限
0 d001 1 5台 2000 10
1 d002 1 5盒 98 10
2 d003 3 1台 188 5
9
订单编号 产品 数量 金额
0 d001 电子设备 5台 2000
1 d002 毛笔 5盒 98
2 d003 电子设备 1台 188
10
订单编号 产品 保险期限 金额 报废年限
0 d001 电子设备 1 2000 10
1 d002 毛笔 1 98 10
2 d003 电子设备 3 188 5
11
产品 数量 金额
订单编号
d001 投影仪 5台 2000
d002 马克笔 5盒 300
d003 打印机 1台 298
d004 点钞机 1台 349
d005 复印纸 2箱 100
d006 条码纸 6卷 34
12
产品 数量 金额
订单编号
d003 打印机 1台 298
d005 复印纸 2箱 100
d006 条码纸 6卷 34
13
产品 数量 金额
订单编号
d001 投影仪 5台 2000
d002 马克笔 5盒 300
d004 点钞机 1台 349
d006 条码纸 6卷 34
14
产品 数量 金额
订单编号
d001 投影仪 5台 2000
d003 打印机 1台 298
d005 复印纸 2箱 100
d006 条码纸 6卷 34
import pandas as pd
data=pd.read_excel('订单表.xlsx',sheet_name=2)
print(data,'\n')
data.info() #每一列的缺失值情况
print()
a=data.isnull() #判断是否为缺失值
print(a,'\n')
b=data.dropna() #删除有缺失值的行
print(b,'\n')
c=data.dropna(how='all') #删除全部为缺失值的行
print(c,'\n')
d=data.fillna(0) #用0填充所有缺失值
print(d,'\n')
e=data.fillna({'金额':16}) #用16填充金额列的缺失值
print(e)
订单编号 产品 数量 金额
0 c001 超市货架 5个 400.0
1 c002 胶带 8卷 60.0
2 c003 复印纸 4箱 360.0
3 c004 封口机 2个 NaN
4 c005 条码纸 6卷 34.0
5 c006 条码打印机 1台 NaN
6 c007 包装盒 50个 120.0
7 c008 交换机 2台 50.0
RangeIndex: 8 entries, 0 to 7
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 订单编号 8 non-null object
1 产品 8 non-null object
2 数量 8 non-null object
3 金额 6 non-null float64
dtypes: float64(1), object(3)
memory usage: 384.0+ bytes
订单编号 产品 数量 金额
0 False False False False
1 False False False False
2 False False False False
3 False False False True
4 False False False False
5 False False False True
6 False False False False
7 False False False False
订单编号 产品 数量 金额
0 c001 超市货架 5个 400.0
1 c002 胶带 8卷 60.0
2 c003 复印纸 4箱 360.0
4 c005 条码纸 6卷 34.0
6 c007 包装盒 50个 120.0
7 c008 交换机 2台 50.0
订单编号 产品 数量 金额
0 c001 超市货架 5个 400.0
1 c002 胶带 8卷 60.0
2 c003 复印纸 4箱 360.0
3 c004 封口机 2个 NaN
4 c005 条码纸 6卷 34.0
5 c006 条码打印机 1台 NaN
6 c007 包装盒 50个 120.0
7 c008 交换机 2台 50.0
订单编号 产品 数量 金额
0 c001 超市货架 5个 400.0
1 c002 胶带 8卷 60.0
2 c003 复印纸 4箱 360.0
3 c004 封口机 2个 0.0
4 c005 条码纸 6卷 34.0
5 c006 条码打印机 1台 0.0
6 c007 包装盒 50个 120.0
7 c008 交换机 2台 50.0
import pandas as pd
data=pd.read_excel('订单表.xlsx',sheet_name=2)
print(data,'\n')
a=data.drop_duplicates() #删除相同的行
print(a,'\n')
b=data.drop_duplicates(subset='产品') #删除产品名重复的行
print(b,'\n')
c=data.drop_duplicates(subset='产品',keep='first') #删除产品名相同的行 ,保留第一次出现的行
print(c,'\n')
d=c=data.drop_duplicates(subset='产品',keep='last') #删除产品名相同的行 ,保留最后出现的行
print(d,'\n')
e=c=data.drop_duplicates(subset='产品',keep=False) #删除所有产品名重复的行
print(e)
订单编号 产品 数量 金额
0 c001 超市货架 5个 400.0
1 c002 胶带 8卷 60.0
2 c003 复印纸 4箱 360.0
3 c004 封口机 2个 NaN
4 c005 条码纸 6卷 34.0
5 c001 超市货架 5个 400.0
6 c002 胶带 8卷 999.0
7 c003 复印纸 4箱 36.0
订单编号 产品 数量 金额
0 c001 超市货架 5个 400.0
1 c002 胶带 8卷 60.0
2 c003 复印纸 4箱 360.0
3 c004 封口机 2个 NaN
4 c005 条码纸 6卷 34.0
6 c002 胶带 8卷 999.0
7 c003 复印纸 4箱 36.0
订单编号 产品 数量 金额
0 c001 超市货架 5个 400.0
1 c002 胶带 8卷 60.0
2 c003 复印纸 4箱 360.0
3 c004 封口机 2个 NaN
4 c005 条码纸 6卷 34.0
订单编号 产品 数量 金额
0 c001 超市货架 5个 400.0
1 c002 胶带 8卷 60.0
2 c003 复印纸 4箱 360.0
3 c004 封口机 2个 NaN
4 c005 条码纸 6卷 34.0
订单编号 产品 数量 金额
3 c004 封口机 2个 NaN
4 c005 条码纸 6卷 34.0
5 c001 超市货架 5个 400.0
6 c002 胶带 8卷 999.0
7 c003 复印纸 4箱 36.0
订单编号 产品 数量 金额
3 c004 封口机 2个 NaN
4 c005 条码纸 6卷 34.0
import pandas as pd
data=pd.read_excel('订单表.xlsx',sheet_name=3)
print(data,'\n')
a=data.sort_values(by='金额',ascending=True) #按金额从小到大排序
print(a,'\n')
b=data.sort_values(by='金额',ascending=False) #按金额从大到小排序
print(b,'\n')
c=data['金额'].rank(method = 'average',ascending=False) #method设置为'average',表示在数据有重复值时,返回重复值的平均排名;
print(c,'\n')
d=data['金额'].rank(method = 'first',ascending=False) #method设置为'first',则表示在数据有重复值时,越先出现的数据排名越靠前
print(d)
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
1 d002 马克笔 5盒 300
2 d003 打印机 1台 298
3 d004 点钞机 1台 349
4 d005 复印纸 2箱 100
5 d006 条码纸 6卷 34
订单编号 产品 数量 金额
5 d006 条码纸 6卷 34
4 d005 复印纸 2箱 100
2 d003 打印机 1台 298
1 d002 马克笔 5盒 300
3 d004 点钞机 1台 349
0 d001 投影仪 5台 2000
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
3 d004 点钞机 1台 349
1 d002 马克笔 5盒 300
2 d003 打印机 1台 298
4 d005 复印纸 2箱 100
5 d006 条码纸 6卷 34
0 1.0
1 3.0
2 4.0
3 2.0
4 5.0
5 6.0
Name: 金额, dtype: float64
0 1.0
1 3.0
2 4.0
3 2.0
4 5.0
5 6.0
Name: 金额, dtype: float64
import pandas as pd
data=pd.read_excel('订单表.xlsx',sheet_name=3)
print(data,'\n')
a=data.T
print(a)
0 d001 投影仪 5台 2000
1 d002 马克笔 5盒 300
2 d003 打印机 1台 298
3 d004 点钞机 1台 349
4 d005 复印纸 2箱 100
5 d006 条码纸 6卷 34
0 1 2 3 4 5
订单编号 d001 d002 d003 d004 d005 d006
产品 投影仪 马克笔 打印机 点钞机 复印纸 条码纸
数量 5台 5盒 1台 1台 2箱 6卷
金额 2000 300 298 349 100 34
import pandas as pd
data=pd.read_excel('订单表.xlsx',sheet_name=3)
print(data,'\n')
a=data.stack()
print(a)
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
1 d002 马克笔 5盒 300
2 d003 打印机 1台 298
3 d004 点钞机 1台 349
4 d005 复印纸 2箱 100
5 d006 条码纸 6卷 34
0 订单编号 d001
产品 投影仪
数量 5台
金额 2000
1 订单编号 d002
产品 马克笔
数量 5盒
金额 300
2 订单编号 d003
产品 打印机
数量 1台
金额 298
3 订单编号 d004
产品 点钞机
数量 1台
金额 349
4 订单编号 d005
产品 复印纸
数量 2箱
金额 100
5 订单编号 d006
产品 条码纸
数量 6卷
金额 34
dtype: object
import pandas as pd
data1=pd.read_excel('订单表.xlsx',sheet_name=3)
data2=pd.read_excel('订单表.xlsx',sheet_name=4)
print(data1,'\n')
print(data2,'\n')
a=pd.merge(data1,data2)
print(a,'\n')
b=pd.merge(data1,data2,how='outer')
print(b,'\n')
c=pd.merge(data1,data2,on='产品')
print(c,'\n')
d=pd.concat([data1,data2])
print(d,'\n')
e=pd.concat([data1,data2],ignore_index=True)
print(e,'\n')
f=data1.append(data2)
print(f,'\n')
g=data1.append({'订单表':'d008','产品':'超市货架','数量':'8个','金额':'640'},ignore_index=True)
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
1 d002 马克笔 5盒 300
2 d003 打印机 1台 298
3 d004 点钞机 1台 349
4 d005 复印纸 2箱 100
5 d006 条码纸 6卷 34
订单编号 产品 数量 金额
0 e001 点钞机 1台 349
1 e002 复印纸 2箱 100
2 e003 展板 2个 150
3 e004 培训椅 5个 345
4 e005 文件柜 2个 150
5 e006 广告牌 4个 269
6 e007 办公沙发 2个 560
7 e008 包装盒 50个 120
8 e009 交换机 2台 50
Empty DataFrame
Columns: [订单编号, 产品, 数量, 金额]
Index: []
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
1 d002 马克笔 5盒 300
2 d003 打印机 1台 298
3 d004 点钞机 1台 349
4 d005 复印纸 2箱 100
5 d006 条码纸 6卷 34
6 e001 点钞机 1台 349
7 e002 复印纸 2箱 100
8 e003 展板 2个 150
9 e004 培训椅 5个 345
10 e005 文件柜 2个 150
11 e006 广告牌 4个 269
12 e007 办公沙发 2个 560
13 e008 包装盒 50个 120
14 e009 交换机 2台 50
订单编号_x 产品 数量_x 金额_x 订单编号_y 数量_y 金额_y
0 d004 点钞机 1台 349 e001 1台 349
1 d005 复印纸 2箱 100 e002 2箱 100
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
1 d002 马克笔 5盒 300
2 d003 打印机 1台 298
3 d004 点钞机 1台 349
4 d005 复印纸 2箱 100
5 d006 条码纸 6卷 34
0 e001 点钞机 1台 349
1 e002 复印纸 2箱 100
2 e003 展板 2个 150
3 e004 培训椅 5个 345
4 e005 文件柜 2个 150
5 e006 广告牌 4个 269
6 e007 办公沙发 2个 560
7 e008 包装盒 50个 120
8 e009 交换机 2台 50
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
1 d002 马克笔 5盒 300
2 d003 打印机 1台 298
3 d004 点钞机 1台 349
4 d005 复印纸 2箱 100
5 d006 条码纸 6卷 34
6 e001 点钞机 1台 349
7 e002 复印纸 2箱 100
8 e003 展板 2个 150
9 e004 培训椅 5个 345
10 e005 文件柜 2个 150
11 e006 广告牌 4个 269
12 e007 办公沙发 2个 560
13 e008 包装盒 50个 120
14 e009 交换机 2台 50
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
1 d002 马克笔 5盒 300
2 d003 打印机 1台 298
3 d004 点钞机 1台 349
4 d005 复印纸 2箱 100
5 d006 条码纸 6卷 34
0 e001 点钞机 1台 349
1 e002 复印纸 2箱 100
2 e003 展板 2个 150
3 e004 培训椅 5个 345
4 e005 文件柜 2个 150
5 e006 广告牌 4个 269
6 e007 办公沙发 2个 560
7 e008 包装盒 50个 120
8 e009 交换机 2台 50
import pandas as pd
data=pd.read_excel('订单表.xlsx',sheet_name=4)
a=data.sum() #求各列数据之和
print(a,'\n')
b=data['金额'].sum() #求金额的和
print(b,'\n')
c=data.mean() #求各列数据的平均值
print(c,'\n')
d=data['金额'].mean() #求金额的平均值
print(d,'\n')
e=data.max() #求各列数据的最大值
print(e,'\n')
f=data['金额'].max() #求金额的最大值
print(f)
订单编号 e001e002e003e004e005e006e007e008e009
产品 点钞机复印纸展板培训椅文件柜广告牌办公沙发包装盒交换机
数量 1台2箱2个5个2个4个2个50个2台
金额 2093
dtype: object
2093
金额 232.555556
dtype: float64
232.55555555555554
订单编号 e009
产品 点钞机
数量 5个
金额 560
dtype: object
560
报错:
数据的统计运算.py:7: FutureWarning: Dropping of nuisance columns in DataFrame reductions (with 'numeric_only=None') is deprecated; in a future version this will raise TypeError. Select only valid columns before calling the reduction.
c=data.mean() #求各列数据的平均值
import pandas as pd
data=pd.read_excel('订单表.xlsx',sheet_name=3)
print(data,'\n')
a=data.describe() #获取全部数据的分布情况
print(a,'\n')
b=data['金额'].describe() #获取金额数据分分布情况
print(b)
订单编号 产品 数量 金额
0 d001 投影仪 5台 2000
1 d002 马克笔 5盒 300
2 d003 打印机 1台 298
3 d004 点钞机 1台 349
4 d005 复印纸 2箱 100
5 d006 条码纸 6卷 34
金额
count 6.000000
mean 513.500000
std 738.873128
min 34.000000
25% 149.500000
50% 299.000000
75% 336.750000
max 2000.000000
count 6.000000
mean 513.500000
std 738.873128
min 34.000000
25% 149.500000
50% 299.000000
75% 336.750000
max 2000.000000
Name: 金额, dtype: float64
import pandas as pd
data = pd.read_excel('相关性分析.xlsx')
print(data,'\n')
a = data.corr()
print(a,'\n')
b = data.corr()['年销售额(万元)']
print(b)
代理商编号 年销售额(万元) 年广告费投入额(万元) 成本费用(万元) 管理费用(万元)
0 A-001 20.5 15.6 2.00 0.80
1 A-003 24.5 16.7 2.54 0.94
2 B-002 31.8 20.4 2.96 0.88
3 B-006 34.9 22.6 3.02 0.79
4 B-008 39.4 25.7 3.14 0.84
5 C-003 44.5 28.8 4.00 0.80
6 C-004 49.6 32.1 6.84 0.85
7 C-007 54.8 35.9 5.60 0.91
8 D-006 58.5 38.7 6.45 0.90
年销售额(万元) 年广告费投入额(万元) 成本费用(万元) 管理费用(万元)
年销售额(万元) 1.000000 0.996275 0.914428 0.218317
年广告费投入额(万元) 0.996275 1.000000 0.918404 0.223187
成本费用(万元) 0.914428 0.918404 1.000000 0.284286
管理费用(万元) 0.218317 0.223187 0.284286 1.000000
年销售额(万元) 1.000000
年广告费投入额(万元) 0.996275
成本费用(万元) 0.914428
管理费用(万元) 0.218317
Name: 年销售额(万元), dtype: float64
import pandas as pd
data = pd.read_excel('产品统计表.xlsx')
print(data,'\n1')
a = data.groupby('产品')
print(a,'\n2')
b = data.groupby('产品').sum()
print(b,'\n3')
c = data.groupby('产品')['利润(元)'].sum()
print(c,'\n')
编号 产品 成本价(元/个) 销售价(元/个) 数量(个) 成本(元) 收入(元) 利润(元)
0 a001 背包 16 65 60 960 3900 2940
1 a002 钱包 90 187 50 4500 9350 4850
2 a003 背包 16 65 23 368 1495 1127
3 a004 手提包 36 147 26 936 3822 2886
4 a005 钱包 90 187 78 7020 14586 7566
5 a006 单肩包 58 124 63 3654 7812 4158
6 a007 单肩包 58 124 58 3364 7192 3828
1
2
成本价(元/个) 销售价(元/个) 数量(个) 成本(元) 收入(元) 利润(元)
产品
单肩包 116 248 121 7018 15004 7986
手提包 36 147 26 936 3822 2886
背包 32 130 83 1328 5395 4067
钱包 180 374 128 11520 23936 12416
3
产品
单肩包 7986
手提包 2886
背包 4067
钱包 12416
Name: 利润(元), dtype: int64
import pandas as pd
data = pd.read_excel('产品统计表.xlsx')
print(data,'\n1:')
a = pd.pivot_table(data, values = '利润(元)', index = '产品', aggfunc = 'sum')
print(a,'\n2:')
b = pd.pivot_table(data, values = ['利润(元)', '成本(元)'], index = '产品', aggfunc = 'sum')
print(b)
编号 产品 成本价(元/个) 销售价(元/个) 数量(个) 成本(元) 收入(元) 利润(元)
0 a001 背包 16 65 60 960 3900 2940
1 a002 钱包 90 187 50 4500 9350 4850
2 a003 背包 16 65 23 368 1495 1127
3 a004 手提包 36 147 26 936 3822 2886
4 a005 钱包 90 187 78 7020 14586 7566
5 a006 单肩包 58 124 63 3654 7812 4158
6 a007 单肩包 58 124 58 3364 7192 3828
1:
利润(元)
产品
单肩包 7986
手提包 2886
背包 4067
钱包 12416
2:
利润(元) 成本(元)
产品
单肩包 7986 7018
手提包 2886 936
背包 4067 1328
钱包 12416 11520