1、数据样例
import pandas as pd
data=pd.read_excel("路径",sheet_name="sheet名")
data
user_id | num1 | num2 | num3 |
5624984222945353728 | 0 | 8 | 3 |
3495453043655770346 | 12 | 8 | 4 |
5525728571643764736 | 2 | 9 | 0 |
5634158985852153856 | 15 | 22 | 11 |
5635157627565940736 | 1 | 6 | 3 |
... | ... | ... | ... |
2、统计函数:count|sum|mean|median|min|max
2.1、整表汇总
按行汇总:axis=0
按列汇总:axis=1
#按列汇总
data.sum(axis=0)
#输出
user_id -2228512839579620074
num1 25320
num2 42318
num3 18752
dtype: int64
#按行汇总
data.sum(axis=1)
#输出
Out[12]:
0 11
1 24
2 11
3 48
4 10
..
4567 4
4568 7
4569 1
4570 6
4571 3
Length: 4572, dtype: int64
2.2、单列汇总
print(data['num1'].count())
print(data['num1'].sum())
print(data['num1'].mean())
print(data['num1'].max())
print(data['num1'].min())
print(data['num1'].median())
#输出
4572
25320
5.5380577427821525
29
0
3.0
#保留小数
a=data['num1'].mean()
round(a,2)
Out[14]: 5.54
2.3、多列汇总
单列统计返回的是一个值,多列统计返回的是一个序列series(有索引和值,索引就是列名)
data
data[['num1','num2']].mean()
#输出
Out[18]:
num1 5.538058
num2 9.255906
dtype: float64
3、排序:data.sort_values(by='排序列',ascending=False)
data.sort_values(by='num1',ascending=False)
Out[20]:
user_id num1 num2 num3
809 5579044487854575616 29 2 1
3962 3477094759968014580 29 13 7
4003 5494510426380918784 29 7 4
104 3501613821985226946 29 6 3
826 5628591245644963840 28 4 2
... ... ... ...
2406 3513087378315608128 0 4 1
2399 5499283457239011328 0 15 7
2398 3526511975088193706 0 0 3
2394 3514020486669795392 0 0 0
4571 5593801780474507264 0 3 0
[4572 rows x 4 columns]
data.sort_values(by='num1',ascending=True)
Out[21]:
user_id num1 num2 num3
0 5624984222945353728 0 8 3
2210 5640957769152696320 0 3 0
2209 5511987672741662720 0 3 0
2208 3503518403813572842 0 4 0
2207 3513332095081316416 0 3 1
... ... ... ...
2263 5630924861299671040 28 12 9
809 5579044487854575616 29 2 1
3962 3477094759968014580 29 13 7
4003 5494510426380918784 29 7 4
104 3501613821985226946 29 6 3
[4572 rows x 4 columns]
4、计算
data['计算字段']=data['num1']*data['num2']
data
Out[28]:
user_id num1 num2 num3 计算字段
0 5624984222945353728 0 8 3 0
1 3495453043655770346 12 8 4 96
2 5525728571643764736 2 9 0 18
3 5634158985852153856 15 22 11 330
4 5635157627565940736 1 6 3 6
... ... ... ... ...
4567 5634110336097857536 2 2 0 4
4568 5637013192119177216 0 5 2 0
4569 5548573528932507648 0 1 0 0
4570 5588803197797904384 3 2 1 6
4571 5593801780474507264 0 3 0 0
[4572 rows x 5 columns]
5、索引
5.1、字符串索引
#字符串筛选:user_id包含'888'的用户信息
data['user_id']=data['user_id'].astype(str)
data[data['user_id'].str.contains('888')]
#输出
Out[36]:
user_id num1 num2 num3 计算字段
28 5568885551092862976 1 10 6 10
83 3513088872978776166 0 2 0 0
361 5513788817125425152 0 5 1 0
367 3497567788853166144 0 41 40 0
403 5631960332737888256 1 10 2 10
... ... ... ... ...
4430 5499199389701541888 0 2 1 0
4432 3488825295054372932 0 0 0 0
4434 5631848889448972288 7 4 0 28
4540 5636977079971237888 14 6 2 84
4570 5588803197797904384 3 2 1 6
5.2、最大最小值索引
data["列名"].idxmax()
data.loc[索引值]
data=data.set_index("user_id")
max_user=data["num1"].idxmax()
#输出
'3501613821985226946'
data.loc[max_user]
#输出
Out[51]:
num1 num2 num3
user_id
3501613821985226946 29 6 3
3501613821985226946 0 6 3
5.3、条件筛选
data[data['num1']==0]
#输出
Out[116]:
num1 num2 num3
user_id
5624984222945353728 0 8 3
5619592819730538504 0 13 7
5642761933520007168 0 4 0
5584447292178771968 0 7 1
5498604286447411200 0 3 2
... ... ...
3523537620163690535 0 3 0
5502579930471976960 0 4 1
5637013192119177216 0 5 2
5548573528932507648 0 1 0
5593801780474507264 0 3 0
索引设置
data=data.set_index("设置为索引的列名")
data=data.reset_index()
data=data.set_index("user_id")
data
Out[38]:
num1 num2 num3 计算字段
user_id
5624984222945353728 0 8 3 0
3495453043655770346 12 8 4 96
5525728571643764736 2 9 0 18
5634158985852153856 15 22 11 330
5635157627565940736 1 6 3 6
... ... ... ...
5634110336097857536 2 2 0 4
5637013192119177216 0 5 2 0
5548573528932507648 0 1 0 0
5588803197797904384 3 2 1 6
5593801780474507264 0 3 0 0
[4572 rows x 4 columns]
#索引重置
data=data.reset_index()
data
Out[40]:
user_id num1 num2 num3 计算字段
0 5624984222945353728 0 8 3 0
1 3495453043655770346 12 8 4 96
2 5525728571643764736 2 9 0 18
3 5634158985852153856 15 22 11 330
4 5635157627565940736 1 6 3 6
... ... ... ... ...
4567 5634110336097857536 2 2 0 4
4568 5637013192119177216 0 5 2 0
4569 5548573528932507648 0 1 0 0
4570 5588803197797904384 3 2 1 6
4571 5593801780474507264 0 3 0 0
[4572 rows x 5 columns]