文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python —如何正确打开Pandas库的姿势

2024-12-13 15:35

关注

Pandas简介

Pandas 最常用于处理数据集。它具有分析、清理、探索和操作数据的功能。"Pandas"这个名称既指"Panel Data",也指"Python Data Analysis"。
,Pandas 让我们能够分析大数据并根据统计理论得出结论。Pandas 可以清理杂乱的数据集,使它们具有可读性和相关性。相关数据在数据科学中非常重要。

安装Pandas

使用pip来安装Pandas。

pip install pandas

Pandas 中的数据类型

Pandas 中使用了两种类型的对象。一个是“Series”,用于创建和存储一维值,例如列或行。另一个是“ DataFrame ”,可以认为是一张表:它是二维的。DataFrame 包含行和列。在数据科学中将经常使用 Pandas DataFrames。可以在 Python 中编写代码时创建 Series 和 DataFrames,但通常情况下,DataFrames 不是在 Pandas 上创建的:数据是从其他地方导入的,因为在编写程序时很难逐个键入所有数据。此数据通常采用逗号分隔值 (.csv) 文件的形式。一个 .csv 文件可以使用 Pandas 转换为 DataFrame,然后你可以用它做很多事情。

Series 与 NumPy 数组非常相似(实际上它构建在 NumPy 数组对象之上)。NumPy 数组与 Series 的区别在于,Series 可以具有轴标签,这意味着它可以由标签索引,而不仅仅是数字位置。它也不需要保存数字数据,它可以保存任意 Python 对象。

  1. Series索引及数据列表代码示例。
import pandas as pd
import numpy as np

index = ['China','Canada','Mexico']

data = [1820,1920,1921]

mySeries = pd.Series(data,index)

print(mySeries)

ran_data = np.random.randint(0,100,4)
print(ran_data)

names = ['Sam','Ram','Max','Bob']
ages = pd.Series(ran_data,names)
print(ages)

pdSeries = pd.Series(data=[100,250,400,500],index=['Q1 Sales','Q2 Sales','Q3 Sales','Q4 Sales'],name='RedBull Sales 2021')
print(pdSeries)

代码运行输出如下图所示

  1. 从Python字典生成Series代码示例。
import pandas as pd
age = {'Bob':15,'Frank':23,'Mailo':18}
dictSeries = pd.Series(age)
print(dictSeries)

代码运行输出如下图所示:

  1. Series的命名索引,类似字典的取值方式,具体请看下面的代码示例,这里需要注意如果取值失败会直接expect错误,所以在取值的时候必须保证key跟index是存在的。
import pandas as pd

q1 = {'Japan': 80, 'China': 450, 'India': 200, 'USA': 250}
q2 = {'Brazil': 100,'China': 500, 'India': 210,'USA': 260}
sales_q1 = pd.Series(q1)
sales_q2 = pd.Series(q2)
print(sales_q1)
print(sales_q2)
print(sales_q1['India'])
print(sales_q2[2])

代码运行结果如下图所示:

  1. Series还可以做一些数学运算,下面是代码示例。
import pandas as pd

q1 = {'Japan': 80, 'China': 450, 'India': 200, 'USA': 250}
q2 = {'Brazil': 100,'China': 500, 'India': 210,'USA': 260}
sales_q1 = pd.Series(q1)
sales_q2 = pd.Series(q2)
print(sales_q1.keys()) # 取Series的key
print(sales_q1.values) # 取Series的values

new_sales_q1 = sales_q1 * 2
print(new_sales_q1)
float_sales_q1 = sales_q1 /100
print(float_sales_q1)

代码运行输出结果如下图所示:

Pandas DataFrame 是一种二维数据结构,如二维数组或具有行和列的表。

  1. 创建DataFrame对象。
import pandas as pd
import numpy as np

np.random.seed(10)
data = np.random.randint(0,101,(4,3))
print(data)
x = ['CA','NY','AZ','TX']
y = ['Jan','Feb','Mar']
df = pd.DataFrame(data,x,y)
print(df)

代码运行结果输出如下图所示:

  1. 从字典创建DataFrame对象。
import pandas as pd

dict_data = pd.DataFrame({'baidu': [10000,20000],
'aliyun':[30000,45000]},
index = ['Exicutive','Techie'])
print(dict_data)

代码运行结果输出如下图所示:

  1. 读取csv文件创建DataFrame对象。

读取csv文件需要安装xlrd跟openpyxl模块。

pip install xlrd
pip install openpyxl
import pandas as pd
df_csv = pd.read_csv("Employees.csv") # 读取csv文件
#df_excel = pd.read_excel("xxx.excel") #读取excel文件
print(df)

代码运行结果输出:

  1. 获取DataFrame的基本信息。
import pandas as pd
df = pd.read_csv("Employees.csv")
df.columns
import pandas as pd
df = pd.read_csv("Employees.csv")
df.head(5)
import pandas as pd
df = pd.read_csv("Employees.csv")
df.tail(3)
import pandas as pd
df = pd.read_csv("Employees.csv")
df.info
import pandas as pd

df = pd.read_csv("Employees.csv")
df.describe()
df.describe().transpose() # 改变表格的对齐方式

如何过滤数据呢?

针对每一行进行测试的单个条件,比如head,tail函数。

可以在一行中测试多个条件。以下示例返回由女性且工资大于 5000的情况。

import pandas as pd

df = pd.read_csv("Employees.csv")
filter1 = df["工资"] > 5000
filter2 = df["性别"] == "F"
result = filter1 & filter2
df[result].head(3)

查询方法提供了一种替代方法,通常是一种比上述方法更易读的过滤数据的方法。表示条件的字符串被传递给查询方法以过滤数据。

import pandas as pd

df = pd.read_csv("Employees.csv")
df.query('工资 > 8000').head(2)

import pandas as pd

df = pd.read_csv("Employees.csv")
df.query('工资 > 5000 and 性别 =="F"')

聚合的技术定义是用单个数字汇总一系列值。例如 sum、mean、median、max 和 min 都是聚合方法的例子

import pandas as pd
df=pd.DataFrame({'user':['Alice','Tom','Bob','Alice','Bob','Alice'],'money':range(6)})

df.groupby(['user']).sum() # sum聚合

结论

这些是 Pandas 中基本操作的一些示例。在 Pandas 中还能够创建数据可视化。

本文转载自微信公众号「爱编码的社畜」,可以通过以下二维码关注。转载本文请联系爱编码的社畜公众号。


来源:爱编码的社畜内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯