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

发表于:2023-1-09 09:39

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:树哥会编程    来源:爱编码的社畜

  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
  Series 与 NumPy 数组非常相似(实际上它构建在 NumPy 数组对象之上)。NumPy 数组与 Series 的区别在于,Series 可以具有轴标签,这意味着它可以由标签索引,而不仅仅是数字位置。它也不需要保存数字数据,它可以保存任意 Python 对象。
  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)
  代码运行输出如下图所示:
  从Python字典生成Series代码示例。
  import pandas as pd
  age = {'Bob':15,'Frank':23,'Mailo':18}
  dictSeries = pd.Series(age)
  print(dictSeries)
  代码运行输出如下图所示:
  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])
  代码运行结果如下图所示:
  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)
  代码运行输出结果如下图所示:
  DataFrames
  Pandas DataFrame 是一种二维数据结构,如二维数组或具有行和列的表。
  创建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)
  代码运行结果输出如下图所示:
  从字典创建DataFrame对象。
  import pandas as pd
  dict_data = pd.DataFrame({'baidu': [10000,20000],
                'aliyun':[30000,45000]},
                  index = ['Exicutive','Techie'])
  print(dict_data)
  代码运行结果输出如下图所示:
  读取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)
  代码运行结果输出:
  获取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)
  获取数据info
  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 中还能够创建数据可视化。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号