【Pandas】1.3.汇总统计方法与应用函数

包含全部示例的代码仓库见GIthub

1 导入库

import pandas as pd
import numpy as np

2 统计方法

2.1 示例1

新建DataFrame

data = pd.DataFrame(np.random.randn(9,6), columns=list('abcdef'))
data
# output
       a	b	c	d	e	f
0	-1.275374	-1.716434	0.378963	-0.570430	-0.838515	-0.580085
1	-0.379262	-0.194995	1.712992	0.647108	0.716119	1.556584
2	-0.560927	-1.532025	-0.477870	0.543167	1.043725	-0.748711
3	1.628004	-0.179523	1.089616	1.102608	0.333088	-0.942939
4	-1.625205	-0.379636	1.757878	0.963458	0.576844	1.185927
5	-1.506126	-0.228909	0.136160	-0.638295	-0.210192	0.556669
6	-0.612531	-1.607560	0.165254	-1.736242	-1.267426	0.397543
7	-0.051339	-0.155817	1.433560	-0.135979	-0.486893	0.890941
8	0.964277	1.297130	-0.521509	-0.057722	-0.240441	-0.036027

显示信息

data.info()
# output
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 9 entries, 0 to 8
Data columns (total 6 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   a       9 non-null      float64
 1   b       9 non-null      float64
 2   c       9 non-null      float64
 3   d       9 non-null      float64
 4   e       9 non-null      float64
 5   f       9 non-null      float64
dtypes: float64(6)
memory usage: 560.0 bytes

修改为np.nan

data.iloc[2,2] = np.nan
data.info()
# output
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 9 entries, 0 to 8
Data columns (total 6 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   a       9 non-null      float64
 1   b       9 non-null      float64
 2   c       8 non-null      float64
 3   d       9 non-null      float64
 4   e       9 non-null      float64
 5   f       9 non-null      float64
dtypes: float64(6)
memory usage: 560.0 bytes

输出一些统计指标

data.describe()
# output
           a	b	c	d	e	f
count	9.000000	9.000000	8.000000	9.000000	9.000000	9.000000
mean	-0.379832	-0.521974	0.769114	0.013075	-0.041521	0.253322
std	1.098543	0.961703	0.844814	0.910042	0.764763	0.887484
min	-1.625205	-1.716434	-0.521509	-1.736242	-1.267426	-0.942939
25%	-1.275374	-1.532025	0.157980	-0.570430	-0.486893	-0.580085
50%	-0.560927	-0.228909	0.734290	-0.057722	-0.210192	0.397543
75%	-0.051339	-0.179523	1.503418	0.647108	0.576844	0.890941
max	1.628004	1.297130	1.757878	1.102608	1.043725	1.556584

求和

data.sum(0)  
# output
a   -3.418484
b   -4.697769
c    6.152914
d    0.117672
e   -0.373692
f    2.279902
dtype: float64

返回最大值索引

data.idxmax(0)  # 返回最大值索引
# output
a    3
b    8
c    4
d    3
e    2
f    1
dtype: int64

data.a.idxmax()
# output
3

返回a列的最大值

data.a[data.a.idxmax()]  # 返回最大值
# output
1.6280042571252895

2.2 示例2

新建Dataframe

data = pd.DataFrame(np.random.randint(1,10,size=(5,7)))  # 范围1到10
data
# output
    0	1	2	3	4	5	6
0	4	1	7	8	7	3	6
1	1	5	4	5	6	6	9
2	4	3	7	5	3	8	3
3	9	7	5	5	6	1	6
4	7	7	1	8	1	7	8

返回包含的值

np.unique(data)
# output
array([1, 3, 4, 5, 6, 7, 8, 9])
data.iloc[:,-1]
# output
0    6
1    9
2    3
3    6
4    8
Name: 6, dtype: int32

data.iloc[:,-1].unique()
# output
array([6, 9, 3, 8])
data.iloc[2].unique()
# output
array([4, 3, 7, 5, 8])

统计每个值出现的次数

data.iloc[:,-2].value_counts()   # 统计每个值出现的次数
# output
3    1
6    1
8    1
1    1
7    1
Name: 5, dtype: int64
s = pd.Series(['a', 'b', 'b', 'b', 'b', 'b', 'a', 'c'])
s.value_counts()
# output
b    5
a    2
c    1
dtype: int64

3 应用函数 apply

3.1 成员关系判断

s = pd.Series(['a', 'b', 'b', 'b', 'b', 'b', 'a', 'c'])
s.isin(['a','c'])
# output
0     True
1    False
2    False
3    False
4    False
5    False
6     True
7     True
dtype: bool

apply函数,求每列最大值减最小值

data = pd.DataFrame(np.random.randint(1,10,size=(5,7)))  # 范围1到10
data
# output
    0	1	2	3	4	5	6
0	4	1	7	8	7	3	6
1	1	5	4	5	6	6	9
2	4	3	7	5	3	8	3
3	9	7	5	5	6	1	6
4	7	7	1	8	1	7	8

data.apply(lambda x: x.max()-x.min(), axis=0)
# output
0    8
1    6
2    6
3    3
4    6
5    7
6    6
dtype: int32

修改列名

data.columns = list("abcdefg")
data
# output
	a	b	c	d	e	f	g
0	4	1	7	8	7	3	6
1	1	5	4	5	6	6	9
2	4	3	7	5	3	8	3
3	9	7	5	5	6	1	6
4	7	7	1	8	1	7	8

data.a.apply(lambda x: x+10)
# output
0    14
1    11
2    14
3    19
4    17
Name: a, dtype: int64

3.2 元素级应用函数

apply广播

data.applymap(lambda x: x**2 + x + 3)  #和广播效果类似
# output
    a	b	c	d	e	f	g
0	23	5	59	75	59	15	45
1	5	33	23	33	45	45	93
2	23	15	59	33	15	75	15
3	93	59	33	33	45	5	45
4	59	59	5	75	5	59	75

赋值

data['g'] = ['ss','fge','sgs','gega','gas']
data
# output
    a	b	c	d	e	f	g
0	4	1	7	8	7	3	ss
1	1	5	4	5	6	6	fge
2	4	3	7	5	3	8	sgs
3	9	7	5	5	6	1	gega
4	7	7	1	8	1	7	gas

对列进行apply

data['g'] = data.g.apply(lambda x: x.title())  # g列字符串首字母大写
data
# output
    a	b	c	d	e	f	g
0	4	1	7	8	7	3	Ss
1	1	5	4	5	6	6	Fge
2	4	3	7	5	3	8	Sgs
3	9	7	5	5	6	1	Gega
4	7	7	1	8	1	7	Gas
  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LouHerGetUp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值