本文目录一览:
- 1、Python—padas(DataFrame)的常用操作
- 2、最全的pandas面试基础100题目
- 3、python 用groupby之后生成新的数据框
- 4、python Pandas 如何实现excel透视的创建组功能
Python—padas(DataFrame)的常用操作
我们先说一下DataFrame是什么:
1、DataFrame是一种数据框结构,相当于是一个矩阵形式,单元格可以存放数值、字符串等,这和excel表很像;
2、DataFrame是有 行(index)和 列(columns)可以设置的;
有了示例,我们就能明白创建时需要传入数据,指定index(行索引名)和columns(列名);
在我们需要将单个元素的字典直接转为DataFrame时,程序会报错,需要适当做些转换,指定行索引或者列索引才行;
在增加列的时候我们用到了一个索引loc,后面我们再详细对loc进行说明,此处先知道可以这样使用。
文本字符串数据处理之前,一定要先转为字符(.str)再进行处理
loc 和 iloc如果容易记混,你就取巧记忆,index是索引
所以iloc则是依据位置索引进行取数,没有i的则是按照名称进行提取数据
原谅我很懒,比较喜欢这样框架式的笔记,所以文字就会比较少(#^.^#)!!!
最全的pandas面试基础100题目
在进行下面的题目操作时,一定要先导入上面的两个数据分析包 pandas、numpy
1. 如何用Python的列表创建一个series?
输出:
一个series是一个一维的标记数组,可以容纳任何数据类型(整数、字符串、浮点数、Python对象等)。必须记住,与Python列表不同,一个series总是包含相同类型的数据。
2.如何使用列表创建一个DataFrame?
输出:
3.如何使用Series 字典对象生成 DataFrame?
输出:
4.如何在pandas中创建一个空的DataFrame?
要创建一个完全空的pandas dataframe,我们使用以下操作:
输出:
已知有这样的数据,如何进行查看
输出:
2.如何查看尾部数据?
3.如何快速查看数据的统计摘要?
4.如何查询索引和列名?
1.简述Pandas Index
在panda中建立索引意味着简单地从DataFrame中选择特定的数据行和列。
pandas支持四种类型的多轴索引,它们是:
它们统称为索引器。这些是迄今为止索引数据最常见的方法。这四个函数有助于从DataFrame获取元素、行和列。
2.Pandas 定义重新索引(Reindexing)
重新索引会更改DataFrame的行标签和列标签。重新索引意味着使数据符合特定轴上给定的一组标签。
多个操作可以通过像这样的索引来完成:
输出:
3.如何设置索引?
panda set_index() 是一种将列表、序列或dataframe设置为dataframe索引的方法。
语法:
DataFrame.set_index(keys, inplace=False)
参数:
改变索引列
在本例中,名称列被用作DataFrame的索引列
输出:
如输出图像所示,以前索引列是一系列数字
Before Operation –
After Operation
4.如何重置索引?
Pandas Series.reset_index()
函数的作用是:生成一个新的DataFrame或带有重置索引的Series。
例1: 使用 Series.reset_index() 函数重置给定Series对象的索引
输出:
现在,我们将使用Series.reset_index()函数来重置给定的series对象的索引
输出 :
从输出中可以看到,该 Series.reset_index() 函数已将给定Series对象的索引重置为默认值。它保留了索引,并将其转换为列。
1.1先创建数据:
1.2选择单列,产生 Series
详见 按标签选择 。
2.1用标签提取一行数据:
详见 按位置选择 。
3.1用整数位置选择:
4.1用单列的值选择数据:
5.1用索引自动对齐新增列的数据:
1.如何得到一个数列的最小值、第25百分位、中值、第75位和最大值?
输出:
Pandas dataframe.mean(axis=None) 函数返回所请求轴(axis=0代表对列进行求平均值,axis=1代表对行进行求平均值)的值的平均值。
示例: 使用 mean() 函数查找索引轴上所有观测值的平均值。
输出:
让我们使用datafame .mean()函数来查找索引轴上的平均值。
3.如何将函数应用到DataFrame中的每个数据元素?
可以使用 apply() 函数以便将函数应用于给定dataframe中的每一行。让我们来看看我们完成这项任务的方式。
实例:
输出:
4.如何在panda中获得一个DataFrame的行数和列数?
输出:
获取df的行和列计数
输出:
5.如何在panda DataFrame中获得列值的总和?
Pandas dataframe.sum() 函数返回所请求轴的值的和
语法: DataFrame.sum(axis=None, skipna=None, )
参数:
示例1: 使用 sum() 函数查找索引轴上所有值的总和
现在求出沿索引轴的所有值的和。我们将跳过计算和时的NaN值。
输出:
如何将新行追加到pandas DataFrame?
Pandas dataframe.append() 函数的作用是:将其他dataframe的行追加到给定的dataframe的末尾,返回一个新的dataframe对象。
语法:
DataFrame.append( ignore_index=False,)
参数:
示例1: 创建两个数据框,然后将第二个附加到第一个。
现在将df2附加到df1的末尾
输出:
请注意,第二个DataFrame的索引值保留在附加的DataFrame中。如果我们不希望发生这种情况,则可以设置ignore_index = True。
输出 :
“group by” 指的是涵盖下列一项或多项步骤的处理流程:
详见 分组 。
输出:
1.先分组,再用 sum() 函数计算每组的汇总数据:
输出:
2.多列分组后,生成多层索引,也可以应用 sum 函数:
输出:
如何将numpy数组转换为给定形状的DataFrame?
输出:
输出:
透视表是一种可以对数据动态排布并且分类汇总的表格格式,在pandas中它被称作pivot_table。
pivot_table(data, values=None, index=None, columns=None)
参数:
详见: 数据透视表
打印输出:
用上述数据生成数据透视表非常简单:
返回结果:
1.如何将列添加到pandas DataFrame?
源数据:
输出:
输出:
2.如何向panda DataFrame添加索引、行或列?
向DataFrame添加索引
如果您创建了一个DataFrame, panda允许将输入添加到索引参数中。它将确保您拥有所需的索引。否则,在默认情况下,DataFrame包含一个数值索引,该索引从0开始,在DataFrame的最后一行结束。
向DataFrame添加行、列
我们可以使用.loc、iloc和ix将行、列插入到DataFrame中。
添加具有特定索引名的行:
输出:
3.如何在panda DataFrame上进行迭代?
您可以通过结合使用for循环和对DataFrame的iterrows()调用来遍历DataFrame的行。
输出:
4.我们如何排序DataFrame?
我们可以通过以下几种有效地在DataFrame中执行排序:
(1)按标签
可以使用sort_index()方法对数据dataframe进行排序。可以通过传递axis参数和排序顺序来实现。默认情况下,按升序对行标签进行排序。
python 用groupby之后生成新的数据框
最近在做一点点风控的东西,想把toad中的ks_bucket改修正下,原码里面是按得分的最大最小值划分的bucket,但我在实际的应用中想更个性化的划分节点去统计。
首先需要解决的一个问题是把0~1上的概率给划分到不同的区间,然后分别统计即可。
之前一直用groupby,分组后想count, sum,后变成df。在网上找了好几种方法,都没有成功,最后还是英文文档解决了我的问题。
这是划分好后的各列情况 , 第一列:概率,第二列:所属的区间, 第三列: 实际的label
我主要是 想把这三列 , 按第二列分组,统计各区间的总数,和label为1的数
用NamedAgg 即可把原来的分组变为数据框。
python Pandas 如何实现excel透视的创建组功能
1、Series的创建
序列的创建主要有三种方式:
1)通过一维数组创建序列
import numpy as np, pandas as pd
arr1 = np.arange(10)
arr1
type(arr1)
s1 = pd.Series(arr1)
s1
type(s1)
2)通过字典的方式创建序列
dic1 = {'a':10,'b':20,'c':30,'d':40,'e':50}
dic1
type(dic1)
s2 = pd.Series(dic1)
s2
type(s2)
3)通过DataFrame中的某一行或某一列创建序列
这部分内容我们放在后面讲,因为下面就开始将DataFrame的创建。
2、DataFrame的创建
数据框的创建主要有三种方式:
1)通过二维数组创建数据框
arr2 = np.array(np.arange(12)).reshape(4,3)
arr2
type(arr2)
df1 = pd.DataFrame(arr2)
df1
type(df1)
2)通过字典的方式创建数据框
以下以两种字典来创建数据框,一个是字典列表,一个是嵌套字典。
dic2 = {'a':[1,2,3,4],'b':[5,6,7,8],
'c':[9,10,11,12],'d':[13,14,15,16]}
dic2
type(dic2)
df2 = pd.DataFrame(dic2)
df2
type(df2)