pandas面试基础

本文详细介绍了Pandas的基础知识,包括如何创建Series和DataFrame,查看数据的头部、尾部和统计摘要,设置和重置索引,选择数据,进行数据运算,合并数据,进行分组,数据重塑,以及使用数据透视表。通过实例讲解了DataFrame的常用操作,如按标签和位置选择数据、赋值、计算统计量、合并与分组等,帮助读者掌握Pandas的基本技能。
摘要由CSDN通过智能技术生成

阅读路线:

  • 准备工作
  • 生成对象
  • 索引
  • 选择需要的数据
  • 运算
  • 合并(merge)
  • 分组(grouping)
  • 重塑(reshaping)
  • 数据透视表(pivot tables)
  • pandas DataFrame里的操作

一、准备工作

import numpy as np
import pandas as pd

在进行下面的题目操作时,一定要先导入上面的两个数据分析包pandas、numpy

二、生成对象

1、如何用Python的列表创建一个series
s = pd.Series([1, 3, 5, np.nan, 6, 8])

输出:

在这里插入图片描述
series是一个一维的标记数组,可以容纳任何数据类型(整数、字符串、浮点数、Python对象等)。必须记住,与Python列表不同,一个series总是包含相同类型的数据。

2.如何使用列表创建一个DataFrame
#导入pandas
import pandas as pd

#字符串列表
lst = ["Gamer47", "Shox", "Simple"]

#在列表中调用DataFrame构造函数
df = pd.DataFrame(lst)

输出:
在这里插入图片描述

3.如何使用Series字典对象生成DataFrame
df2 = pd.DataFrame({
   'A': 1.,
                    'B': pd.Timestamp('20130102'),
                    'C': pd.Series(1, index = list(range(4)), dtype='float32'),
                    'D': np.array([3] * 4, dtype = 'int32'),
                    'E': pd.Categorical(["test", "train", "test", "train"]),
                    'F': 'foo'})

输出:
在这里插入图片描述

4.如何在pandas中创建一个空的DataFrame

要创建一个完全空的pandas dataframe,我们使用以下操作:

import pandas as pd
df = pd.DataFrame()

输出:
在这里插入图片描述

三、查看数据:

已知有这样的数据,如何进行查看

dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index = dates, columns = list('ABCD'))

输出:
在这里插入图片描述

1.如何查看头部数据

在这里插入图片描述

2.如何查看尾部数据

在这里插入图片描述

3.如何快速查看数据的统计摘要

在这里插入图片描述

4.如何查询索引和列名

在这里插入图片描述

四、索引

1.简述Pandas Index

在pandas中建立索引意味着简单地从DataFrame中选择特定地数据行和列。
pandas支持四种类型的多轴索引,它们是:

  • DataFrame.[ ]:此函数称为索引运算符
  • DataFrame.loc[ ]:此函数用于标签
  • DataFrame.iloc[ ]:此函数用于基于位置或整数的
  • DataFrame.ix[ ]:此函数用于基于标签和整数的

它们统称为索引器。这些是迄今为止索引数据最常见的方法。这四个函数有助于从DataFrame获取元素、行和列。

2.Pandas定义重新索引(reindexing)

重新索引会更改DataFrame的行标签和列标签。重新索引意味着使数据符合特定轴上给定的一组标签。
多个操作可以通过像这样的索引来完成:

  • 重新排列现有数据以匹配一组新的标签。
  • 在不存在标签数据的标签位置插入缺失值(NA)标记。
import pandas as pd
import numpy as np
N = 20
df = pd.DataFrame({
   
    'A': pd.date_range(start='2016-01-01', periods = N, freq = 'D'),
    'x': np.linspace(0, stop=N-1, num=N),
    'y': np.random.rand(N),
    'C': np.random.choice(['Low', 'Medium', 'High']),
    'D': np.random.normal(100, 10, size=(N)).tolist()
})

df_reindexed = df.reindex(index=[0, 2, 5], columns=['A', 'C', 'B'])
print(df_reindexed)

输出:
在这里插入图片描述

3.如何设置索引

panda set_index()是一种将列表、序列或dataframe设置为dataframe索引的方法。
语法
DataFrame.set_index(keys, inplace=False)
参数

  • keys:列标签或列标签/数组列表,需要设置为索引的列
  • inplace:默认为False,适当修改DataFrame(不需要创建新对象)

改变索引列
在本例中,名称列被用作DataFrame的索引列

import pandas as pd

#读取csv文本文件到DataFrame变量中
data = pd.read_csv("employees.csv")
data.set_index("first_name", inplace=True)

#观察数据
data.head()

输出:
如输出图像所示,以前索引列是一系列数字
在这里插入图片描述
改变索引列后,索引列是给定的索引列
在这里插入图片描述

4.如何重置索引

Pandas Series.reset_index()
函数的作用是:生成一个新的DataFrame或带有重置索引的Series。

例1:使用Series.reset_index()函数重置给定Series对象的索引

#导入pandas包
import pandas as pd 

#创建Series
sr = pd.Series([10, 25, 3, 11, 24, 6])
#创建索引
index_ = ['Coca Cola', 'Sprite', 'Coke', 'Fanta', 'Dew', 'ThumbsUp']
#设置索引
sr.index = index_
#打印series
print(sr)

输出:
在这里插入图片描述
现在,我们将使用Series.reset_index()函数来重置给定的series对象的索引

#重置索引
result = sr.reset_index()
#打印
print(result)

输出:
在这里插入图片描述
从输出中可以看到,该Series.reset_index()函数已将给定Series对象的索引重置为默认值。它保留了索引,并将其转换为列。

五、选择需要的数据

1.获取数据
1.1先创建数据
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))

在这里插入图片描述

1.2选择单列,产生Series

在这里插入图片描述

1.3用[ ]切片行:

在这里插入图片描述

2.按标签选择
2.1用标签提取一行数据:

在这里插入图片描述

2.2用标签选择多列数据:

在这里插入图片描述

2.3用标签切片,包含行与列结束点:

在这里插入图片描述

2.4返回对象降维:

在这里插入图片描述

2.5提取标量值:

在这里插入图片描述

2.6快速访问标量,与上述方法等效:

在这里插入图片描述

3.按位置选择
3.1用整数位置选择:

在这里插入图片描述

3.2 类似NumPy/Python,用整数切片:

在这里插入图片描述

3.3 类似NumPy/Python,用整数列表按位置切片:

在这里插入图片描述

3.4 显示整行切片:

在这里插入图片描述

3.5 显示整列切片:

在这里插入图片描述

3.6 显示提取值:

在这里插入图片描述

3.7 快速访问标量,与上诉方法等效:

在这里插入图片描述

4.布尔索引
4.1用单列的值选择数据:

在这里插入图片描述

4.2 选择DataFrame里满足条件的值:

在这里插入图片描述

4.3 用isin()筛选:

在这里插入图片描述

5.赋值
5.1用索引自动对齐新增列的数据:

在这里插入图片描述

5.2 按标签赋值:

在这里插入图片描述

5.3 按位置赋值:

在这里插入图片描述

5.4 按NumPy数组赋值

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值