1.Serise对象
pandas库中的一种数据对象,类似与以为数组
有一组数据及其对应的的标签(索引)所构成
Series对象可以存储整数、浮点、字符串、Python对象等多种数据类型
如何创建Series对象?
pd.Series(data,index) # pd 是pandas的别名(import pandas as pd)
1.1 创建一个Series对象
import pandas as pd
data = ['小黑子', '你干嘛', '啊哈哈哈']
Series_data = pd.Series(data)
print(Series_data)
0 小黑子
1 你干嘛
2 啊哈哈哈
dtype: object
1.2 修改索引值
import pandas as pd
data = ['小黑子', '你干嘛', '啊哈哈哈']
index = ['菜1','菜2', '菜3'] # 想改成数字也是可以的,例如index = [1, 2, 3]
Series_data = pd.Series(data, index)
print(Series_data)
菜1 小黑子
菜2 你干嘛
菜3 啊哈哈哈
dtype: object
1.3 Series的索引
位置索引
索引范围[0,N-1]
标签索引
[索引名称]
获取多个索引使用[[索引1,索引2,...]]
切片索引
[start:stop:step]
获取Series的索引和值
获取索引Series_data.index
获取值Series_data.value
import pandas as pd
data = ['小黑子', '你干嘛', '啊哈哈哈']
index = ['菜1','菜2', '菜3'] # 想改成数字也是可以的,例如index = [1, 2, 3]
Series_data = pd.Series(data, index)
Series_data
菜1 小黑子
菜2 你干嘛
菜3 啊哈哈哈
dtype: object
# 位置索引
print(Series_data[0])
小黑子
# 标签索引
print(Series_data['菜2'])
你干嘛
# 获取多个标签
print(Series_data[['菜1', '菜2']])
菜1 小黑子
菜2 你干嘛
dtype: object
# 切片操作
print(Series_data[0:3:1])
菜1 小黑子
菜2 你干嘛
菜3 啊哈哈哈
dtype: object
# 获取索引Series_data.index
# 获取值Series_data.value
print(f"数据的索引为{Series_data.index},值为{Series_data.values}")
数据的索引为Index(['菜1', '菜2', '菜3'], dtype='object'),值为['小黑子' '你干嘛' '啊哈哈哈']
2.DataFrame对象
DataFrame对象是pandas库种的一种数据结构,类似与二位表,由行列组成
与Series一样支持多种数据类型
创建DataFarme对象
pd.DataFrame(data,index,columns,dtype)
2.1 创建一个DataFrame对象
# 以列表的方式创建
import pandas as pd
data = [['棒棒糖',1.5 ,100], ['奶茶', 10, 200], ['饼干', 0.5, 1000]]
columns = ['名称', '单价', '数量']
data_df = pd.DataFrame(data, columns)
print(data_df)
0 1 2
名称 棒棒糖 1.5 100
单价 奶茶 10.0 200
数量 饼干 0.5 1000
# 以字典的形式创建
import pandas as pd
data = {
'名称':['棒棒糖','奶茶','饼干'],
'单价':[1.5,10,0.5],
'数量':[100,200,1000]
}
data_df = pd.DataFrame(data)
print(data_df)
名称 单价 数量
0 棒棒糖 1.5 100
1 奶茶 10.0 200
2 饼干 0.5 1000
NOTE:以字典的形式创建需要保证列数(每行都有值)相同,否则会报错
2.2 DataFrame的重要属性
values:查看所有元素的值
dtypes:查看所有元素的名称
index:查看所有行名、重命名行名
columns:查看所有列名、重命名列名
T:行列互换
head:查看前N条数据(默认前5条)
tail:查看后N条数据(默认后5条)
shape:查看行数(shape[0]),列数(shape[1])
info:参看索引、数据类型和内存信息
import pandas as pd
data = [['棒棒糖',1.5 ,100], ['奶茶', 10, 200], ['饼干', 0.5, 1000]]
columns = ['名称', '单价', '数量']
data_df = pd.DataFrame(data=data, columns=columns)
print(data_df)
名称 单价 数量
0 棒棒糖 1.5 100
1 奶茶 10.0 200
2 饼干 0.5 1000
# 查看所有元素
print(data_df.values)
[['棒棒糖' 1.5 100]
['奶茶' 10.0 200]
['饼干' 0.5 1000]]
# 查看所有元素的类型
print(data_df.dtypes)
名称 object
单价 float64
数量 int64
dtype: object
# 查看所有行名、重命名行名
print('所有的行名为:',data_df.index)
# 使用列表看的仔细些
print('所有的行名为:',list(data_df.index))
所有的行名为: RangeIndex(start=0, stop=3, step=1)
所有的行名为: [0, 1, 2]
# 修改行名
data_df.index = [1,2,3]
print('修改之后的所有的行名为:',list(data_df.index))
修改之后的所有的行名为: [1, 2, 3]
pd.set_option('display.unicode.east_asian_width',True) # 规则格式
# 行列互换
print('交换之前\n',data_df)
交换之前
名称 单价 数量
1 棒棒糖 1.5 100
2 奶茶 10.0 200
3 饼干 0.5 1000
new_data = data_df.T
print('交换之后\n',new_data)
交换之后
1 2 3
名称 棒棒糖 奶茶 饼干
单价 1.5 10.0 0.5
数量 100 200 1000
# 查看前/后N条数据
print('查看前N条数据\n',data_df.head(1))
print('查看前N条数据\n',data_df.tail(1))
查看前N条数据
名称 单价 数量
1 棒棒糖 1.5 100
查看前N条数据
名称 单价 数量
3 饼干 0.5 1000
# 查看行列
print('行',data_df.shape[0],'列',data_df.shape[1])
行 3 列 3
2.3 DataFrame的重要函数
describe():查看每列的统计汇总信息
count():返回每列的非空值的个数
sum():返回每一列的和,无法返回空值
max():返回每列的最大值
min():返回每列的最小值