Python数据分析----Pandas
Python数据分析----Pandas
pandas提供了使我们能够快速便捷地处理结构化数据的大量数据结构和函数 .
pandas兼具NumPy高性能的数组计算功能以及电子表格和关系型数据库灵活的数据处理功能 .
对于金融行业的用户,pandas提供了大量适合于金融数据的高性能时间序列功能和工具 .
学统计的人会对R语言比较熟悉,R提供的data.frame对象功能仅仅是pandas的DataFrame所提供的功能的一个子集 .
pandas含有使数据分析工作变得更快更简单的高级数据结构和操 作工具,它是基于Numpy构建的,有很多操作是类似的
约定本小节编写程序之前默认运行了import pandas as pd和 from pandas import
Series,DataFrame
1、Pandas-Series
Series是一种类似于一维数组的对象,由数据(各种NumPy数据 类型)以及与之相关的数据标签(即索引)组成
可以通过字典(kv格式)构建Series对象,Series对象的索引也是可以修改的
import pandas as pd
# 构建一个序列,指定数据和索引
series = pd.Series(data=[1, 2, 3, 4, 5, 6], index=["a", "b", "c", "d", "e", "f"])
print(series)
# 结果
a 1
b 2
c 3
d 4
e 5
f 6
dtype: int64
# 修改索引
series.index = [0, 1, 2, 3, 4, 5]
print(series)
# 结果
0 1
1 2
2 3
3 4
4 5
5 6
dtype: int64
=============================================
# 1、通过字典构建series对象
di = dict(a=1, b=2, c=3)
print(di) # {'a': 1, 'b': 2, 'c': 3}
# 2、通过字典对象构建序列
pd_series = pd.Series(di)
print(pd_series)
# 结果
a 1
b 2
c 3
dtype: int64
2、Pandas-Dataframe
DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)
DataFrame既有行索引也有列索引,可以看做由Series组成的字典
import pandas as pd
# 构建DataFrame
users = {
"name": ["张三", "李四", "王五"],
"age": [23, 24, 25]
}
print(users)
# 结果
{'name': ['张三', '李四', '王五'], 'age': [23, 24, 25]}
name age
df = pd.DataFrame(users)
print(df)
# 结果
0 张三 23
1 李四 24
2 王五 25
# 选择列,df的一个列是一个series
print(df["age"])
# 结果
0 23
1 24
2 25
Name: age, dtype: int64
print(df["name"])
# 结果
0 张三
1 李四
2 王五
Name: name, dtype: object
# drop删除列,返回一个新的列
print(df.drop("name",axis=1))
# 结果
age
0 23
1 24
2 25
# 删除源df的列,返回一个新的列
del df["name"]
print(df)
# 结果
age
0 23
1 24
2 25
3、文件读取
# 导入Pandas包
import pandas as pd
# 读取CSV格式的数据
student = pd.read_csv("students.txt", #路径
header=None, #没有用做列名的行号
names=["id","name","age","gender","clazz"], #列名
encoding="utf-8", #编码
sep=",") #分割方式
# 对读取的数据做分组统计
# count() -- 将所有的列都进行统计,所以在前面先拿出id,对id进行统计
student.groupby(by="clazz")["id"].count()
# 计算班级的平均年龄
student.groupby(by="clazz")["age"].mean()
# 对表中可以计算的列,进行统计分析(都给你算一遍)
student.describe()
# 计算年龄最小值
min_age = student["age"}.min()
# 保存数据
# 可以to很多格式
min_age.to_csv("min_age.txt",header=None,sep=",")

浙公网安备 33010602011771号