ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python数据分析----Pandas

2022-03-30 22:35:30  阅读:232  来源: 互联网

标签:name Python age pandas ---- df pd print 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=",")

标签:name,Python,age,pandas,----,df,pd,print,Pandas
来源: https://www.cnblogs.com/saowei/p/16079476.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有