Pandas入门

Pandas入门

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

1.1Series

# 创建Series对象
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

在这里插入图片描述
在这里插入图片描述

# 修改‘二季度’的值
ser2['二季度'] = np.nan
ser2

在这里插入图片描述
在这里插入图片描述

1.1.1 Series对象的方法

# 获取描述性统计信息 ---> 集中趋势
print(ser2.sum())
print(ser2.mean())
# 中位数
print(ser2.median())
print(ser2.quantile(0.5))
# 众数
print(ser2.mode())

在这里插入图片描述

# 获取描述性统计信息 ---> 离散趋势
print(ser2.max())
print(ser2.min())
print(ser2.var())
print(ser2.std())
# 上下四分位数
print(ser2.quantile(0.25))
print(ser2.quantile(0.75))

在这里插入图片描述
在这里插入图片描述

ser3 = pd.Series(['apple', 'banana', 'apple', 'pitaya', 'apple', 'pitaya', 'durian'])
ser3

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ser4 = pd.Series(data=[10, 20, np.NaN, 30, np.NaN])
ser4

在这里插入图片描述
在这里插入图片描述

# 删除指定的值
ser4.drop(index=[2, 4])

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 给索引排序
# ascending ---> 默认为True(升序),False(降序)
ser1.sort_index(ascending=True)

在这里插入图片描述

# 给值排序
ser1.sort_values(ascending=False)

在这里插入图片描述
在这里插入图片描述

ser5 = pd.Series(['cat', 'dog', np.nan, 'rabbit'])
ser5

在这里插入图片描述
在这里插入图片描述

ser6 = pd.Series(np.random.randint(30, 80, 10))
ser6

在这里插入图片描述

def upgrade(score):
    return score ** 0.5 *10

# ser6.map(upgrade).round(0)
# ser6.map(lambda x: x ** .5 * 10).round(0)
ser6.apply(lambda x: x ** .5 * 10).round(0)

在这里插入图片描述
在这里插入图片描述

线性归一化(标准化): 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μ

x_max, x_min = ser7.max(), ser7.min()

ser7.apply(lambda x: (x - x_min) / (x_max - x_min))

在这里插入图片描述

ser1.plot(kind='bar', color=['r', 'g', 'b', 'y', 'c'])
plt.xticks(rotation=0)
plt.grid(True, alpha=0.25, axis='y', linestyle=':')
plt.show()

在这里插入图片描述

ser1.groupby(level=0).sum()

在这里插入图片描述

ser1.groupby(level=0).sum().plot(kind='bar', color=['r', 'g', 'b', 'y'])
plt.xticks(rotation=0)
plt.grid(True, alpha=0.25, axis='y', linestyle=':')
plt.show()

在这里插入图片描述

temp = ser1.groupby(level=0).sum()
temp.plot(kind='pie', autopct='%.2f%%')
plt.ylabel('')
plt.show()

在这里插入图片描述

1.2 DataFrame

1.2.1 创建DataFrame对象

# 第一种: 通过二维数组创建DataFrame
# 第二种: 通过字典创建DataFrame
# 第三种:读取CSV文件创建DataFrame对象
df = pd.read_csv('data/订单.csv', sep=',', encoding='utf-8-sig', skiprows=range(1, 11), nrows=10)
df

在这里插入图片描述

# 第四种:读取Excel文件创建DataFrame对象
df = pd.read_excel(
    'data/2020年销售数据.xlsx',
    sheet_name='Sheet1',
    usecols=('销售日期', '销售区域', '销售渠道', '销售数量')
)
df
df = pd.read_csv('data/2018年北京积分落户数据.csv')
df

在这里插入图片描述

# 第五种:通过SQL从数据库读取数据创建DataFrame对象
dept_df = pd.read_sql(
    'select dno as no, dname as name, dloc as loc from tb_dept', 
    conn, index_col='no'
)
dept_df

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

emp_df.loc[1359, 'ename']='胡二刀'
emp_df

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值