python pandas菜鸟教程,下载pandas模块
最近在工作中有时会遇到数据转换的问题。这些知识之前比较零散,今天抽空整理了一下。
数据来自github.com张继熊猫数据公司。
一.等级索引
层次索引可以作为增加维度的方法,也是行列转换的关键。Pandas的原始数据类型包括序列、数据帧。
Series可以看作是一维数组索引。
DataFrame可以看作是由多个序列组成的二维数组。
然后,如果你使用实现比二维更高的数据,你可以使用层次索引。
比如要用数列实现二维数据,可以加一层索引。
在[13]中:数据={
(‘加州’,2000): 33871648,
(‘加州’,2010): 37253956,
(‘德州’,2000): 20851820,
(德州,2010): 25145561,
(《纽约》,2000): 18976457,
(《纽约》,2010): 19378102
}
警察。系列(数据)
Out[13]:
加州2000 33871648
2010 37253956
纽约2000 18976457
2010 19378102
德克萨斯州2000 20851820
2010 25145561
dtype: int64
如果将元组作为键的字典传递给panda,那么默认情况下,panda也将被转换为MultiIndex,这是创建层次索引的方法之一。
让我们来看看index的两个重要属性:级别和名称。
以上面的层次索引为例:
数据.索引.级别
# output:冻结列表([[California , New York , Texas],[2000,2010]])
可以看出,levels属性包含了每个级别指标的指标值,是一个二维列表。例如,[加利福尼亚,纽约,得克萨斯]是一级索引levels[0]。
数据.索引.名称
# frozen list([无,无])
names属性包含每个索引级别的名称,该名称为None,因为它尚未命名。
您可以通过rename方法来命名索引。
data.index.rename(city ,level=0,inplace=True)
data.index.rename(dt ,level=1,inplace=True)
数据.索引.名称
# output FrozenList([city , dt])
二。行列转换(长宽互换)
(1)堆叠和拆分
加州2000 33871648
2010 37253956
纽约2000 18976457
2010 19378102
德克萨斯州2000 20851820
2010 25145561
以上述数据为例。
new_df=pop.unstack()
新_df
un()方法可以将一系列多级索引快速转换为一个普通索引的数据帧,而unstack方法可以将列转换为索引。
让我们来看一个实际的线间交换的例子。
进口熊猫作为pd
df=pd.read_csv(data/pew.csv )
df.head(10)
Df=df.set _ index (dependency) #首先将依赖关系设置为索引。
Df=df.stack() #将列转换为二级索引
df . index=df . index . rename( income ,level=1) #二级索引寿命
df.name=频率
Df=df.reset_index() #将索引转换为序列
df.head(10)
上述变换可以看作是宽表到长表,比较好记。当一组特征相同的列转化为一列时,自然会变窄。同时,如果需要与其他栏目组合进行一一对应,会变得更长。
行列转移
现在我们就把上面的数据反过来。
Df=df.set _ index ([dependency , income]) [frequency] #设置层次索引
Df=df.untack() #索引转换
三。熔化和透视_表格
这里有两张图片。原图来自Medium(一家高质量的英文网站)。
Pivot_table透视表操作就是把长表改成宽表。
熔化操作可以被视为将宽表更改为长表https://towardsdatascience.com/reshape-pandas-data框架和数据透视表towardsdatascience.com。
历史提交的图片或压缩文件
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。