Pandas入门

Pandas入门

  1. Series:数据系列,代表一维数据,比numpy中的一维数组强大。
  2. DataFrame:数据窗/数据框/数据表,代表二维数据,封装了数据分析常用的各种方法。
  3. Index:索引,为SeriesDataFrame提供数据索引服务。

1 Series

1.1.1 创建Series对象

方法一:通过列表的方式,index若不设置,默认为0,1,2,3
ser1 = pd.Series(data=[320, 180, 360, 450, 520], index=[f ‘{x}季度’ for x in ‘一二三三四’])
ser1
方法二:通过字典的方式
ser2 = pd.Series(data={‘一季度’: 320, ‘二季度’: 180, ‘三季度’: 450, ‘四季度’: 520})
ser2

1.1.2 Series 的索引和切片

索引
1.
ser1[‘三季度’]
三季度 360
三季度 450

ser2.一季度
320
2.花式索引
ser1[ [ ‘一季度’, ‘三季度’,‘一季度’ ] ]
一季度 320
三季度 360
三季度 450
一季度 320
3. 布尔索引
ser1[ser1 >= 400]
三季度 450
四季度 520
切片
1.ser1[1:3] - - - > (前开后闭)
二季度 180
三季度 360
2. ser1[‘二季度’: ‘三季度’] - - - > (前闭后闭)
二季度 180
三季度 360
三季度 450

1.1.3 Series的常见属性

在这里插入图片描述
ser2.index - - - > 获取索引
Index([‘一季度’, ‘二季度’, ‘三季度’, ‘四季度’], dtype=‘object’)

ser2.index.values - - - > 获取索引的值
array([‘一季度’, ‘二季度’, ‘三季度’, ‘四季度’], dtype=object)

ser2.values - - - > 获取数据
array([320, 180, 450, 520], dtype=int64)

ser2.size - - - > 元素个数
ser2.is_unique - - - > 元素是否唯一
ser2.hasnans - - -> 判断有无空值,有就返回True,没有返回False
ser2[‘二季度’] = np.nan - - - > 赋空值

1.1.4 Series 对象的方法

1.获取描述性统计信息 —> 集中趋势
求和:
print(ser2.sum())
求平均:
print(ser2.mean())
中位数:
print(ser2.median())
print(ser2.quantile())
众数:
print(ser2.mode())
2. 获取描述性统计信息 —> 离散趋势
最大值和最小值
print(ser2.max())
print(ser2.min())
极差
print(np.ptp(ser2))
方差和标准差
print(ser2.var())
print(ser2.std())
上下四分位数
print(ser2.quantile(0.25))
print(ser2.quantile(0.75))
3. 获取描述性统计信息 - - - > describe()
ser2.describe()
count 4.000000
mean 422.500000
std 84.212034
min 320.000000
25% 380.000000
50% 425.000000
75% 467.500000
max 520.000000
4. 去重
ser3 = pd.Series([‘apple’, ‘banana’, ‘apple’, ‘pitaya’, ‘apple’, ‘pitaya’, ‘durian’])
ser3.unique() - - - > 去重
array([‘apple’, ‘banana’, ‘pitaya’, ‘durian’], dtype=object)

ser3.duplicates() - - - > 判断元素第一次出现还是重复出现,返回布尔数组

ser3.drop_duplicates() - - - > 去重(重复的元素默认保留第一项,默认值keep=first,keep=last是保留最后一项,keep=False代表只要是重复的就去掉)
0 apple
1 banana
3 pitaya
6 durian
dtype: object

ser3.nunique() - - - > 不重复元素的个数

ser3.value_counts() - - - > 元素重复的频次(按频次降序排列)
apple 3
pitaya 2
banana 1
durian 1
dtype: int64
5. inplace
inplace- 是否就地进行操作 :
True —> 就地操作,不返回新的对象 —> None ;
False(默认值)—> 返回操作后的新对象 —> Series

ser3.drop_duplicates(keep=False, inplace=True)
1 banana
6 durian
dtype: object
6. 判断空值
ser4 = pd.Series(data=[10, 20, np.NaN, 30, np.NaN])
ser4
ser4.isnull() - - - > 判断空值,是空返回True,不是空返回False
ser4.notnull() - - - > 判断非空值,非空返回True,空返回

ser4[ser4.notnull()] - - - > 通过布尔索引筛选非空值
7. 删除
ser4.drop(index=2) - - - > 删除指定的值
ser4.dropna() - - - - > 删除空值
8. 填充空值
ser4.fillna(50) - - - > 填充空值
ser4.fillna(method=‘ffill’) - - - > 用前面的填充
ser4.fillna(method=‘bfill’) - - - > 用后面的填充
9.排序
给索引排序:ascending —> 升序还是降序 —> 默认值True,代表升序
ser1.sort_index(ascending=False)
给值排序:
ser1.sort_values(ascending=False)
Top-N
ser1.nlargest(3)
ser1.nsmallest(2)
10.函数map() ,apply()
ser5 = pd.Series(data=[‘32’,‘89’,‘100’,‘56’,‘47’])
ser5
注意:此处ser5为字符串类型
ser5.map(int).mean() - - - > 映射为整型即可运算

一组成绩:ser6 = pd.Series(np.random.randint(30, 80, 10))
定义计算成绩的函数:
def upgrade(score):
return score ** 0.5 * 10
利用apply计算成绩法一:
np.round(ser6.apply(upgrade),0)

利用apply计算成绩法二:
np.round(ser6.apply(lambda x: x ** 0.5 * 10), 0)
11. where 、mask
ser8=pd.Series(np.random.randint(1,100,10))

ser8.where(ser8 > 30 , 30) - - - > 满足条件的保留,不满足条件的替换为30
ser8.mask(ser8 > 30 , 30) - - - > 满足条件的数据替换为30,不满足条件的保留
12.线性归一化、零均值归一化
线性归一化(标准化):

X ′ = X i − X m i n X m a x − X m i n X' = \frac {X_{i} - X_{min}} {X_{max} - X_{min}} X=XmaxXminXiXmin

零均值归一化(中心化):

X ′ = X i − μ σ X' = \frac {X_{i} - \mu} {\sigma} X=σXiμ
ser7 = pd.Series(data=np.random.randint(150, 550, 7),index=[f’{x}季度’ for x in ‘1123344’])

线性归一化:
x_max, x_min = ser7.max(), ser7.min()
ser7.apply(lambda x: (x - x_min) / (x_max - x_min))

零均值归一化:
mu,sigma = ser7.mean(),ser7.std()
ser7.apply(lambda x: (x - mu) / sigma)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值