脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - pandas应用实例之pivot函数详解

pandas应用实例之pivot函数详解

2022-07-04 22:30superY25 Python

最近在做基于python的数据分析工作,引用第三方数据分析库pandas,所以下面这篇文章主要给大家介绍了关于pandas应用实例之pivot函数的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下

1、pivot函数的定义

pivot(index=None,columns=None,values=None) -> DataFrame

2、pivot函数的说明

通过给定的索引(index)和列(column)的值重新生一个DataFrame对象。

根据列值对数据进行整形(生成一个“透视”表)。从指定的索引/列中使用唯一的值来形成结果数据帧的轴。此函数不支持数据聚合,多个值将导致列中的多索引。

3、pivo函数的参数

index:指定一列做为生成DataFrame对象的索引,如果为空则默认为原来的索引。

columns:指定一列的值作为列名,必须传值。

values:指定一列作为生成DataFrame对象的值。可以为空。

4、pivot函数实例

df = pd.DataFrame({"foo": ["one", "one", "one", "two", "two", "two"],
                    "bar": ["A", "B", "C", "A", "B", "C"],
                    "baz": [1, 2, 3, 4, 5, 6],
                    "zoo": ["x", "y", "z", "q", "w", "t"]})

pandas应用实例之pivot函数详解

# 指定foo的值为新dataframe的index,bar的值为columns,dataframe中对应的值为baz
df.pivot(index="foo", columns="bar", values="baz")

pandas应用实例之pivot函数详解

# 没有指定value,列名最外层保留原来的列,如下结果baz和zoo为原dataframe中的列名,新指定的列名bar在里层(暂时这么理解)。
df.pivot(index="foo", columns="bar")

pandas应用实例之pivot函数详解

# 可以通过索引的方式取指定的列数据
df.pivot(index="foo", columns="bar")["baz"]

pandas应用实例之pivot函数详解

# 可以指定多个values
df.pivot(index="foo", columns="bar", values=["baz", "zoo"])

pandas应用实例之pivot函数详解

# 指定多个columns
df.pivot(index="foo", columns=["bar","baz"], values=["zoo"])

pandas应用实例之pivot函数详解

# 指定多个index
df.pivot(index=["foo","bar"], columns="baz", values="zoo")

pandas应用实例之pivot函数详解

# 指定多个index可以通过index名取当个index的数据
df.pivot(index=["foo","bar"], columns="baz", values="zoo").loc["one",:]

pandas应用实例之pivot函数详解

# 这两行代码运行将会报错。
# 报错提示:ValueError: Index contains duplicate entries, cannot reshape
# 意思是指定的索引one有两个列bar=A冲突了。
df = pd.DataFrame({"foo": ["one", "one", "two", "two"],
                   "bar": ["A", "A", "B", "C"],
                   "baz": [1, 2, 3, 4]})
df.pivot(index="foo", columns="bar", values="baz")

5、pivot函数在实际工作中解决的案例

pandas应用实例之pivot函数详解

现在要上图中的不同code之间从2020-11-16到2020-11-18三天内num序列数的相关性。

首先,dataframe对象可以直接调用函数corr()计算不同列之间的相关性,所以现在需要将原始的dataframe对象转换成以code为列,date为索引,num为值的dataframe。
第一种比较笨的方法就是循环,此方法不但代码量较多而且在数据量很大时会比较耗时。不建议使用。

grouped = df.groupby(by=["code"])
df_num = pd.DataFrame()
for name,group in grouped:
    d = pd.Series(data=group["num"].values,name=name)
    df_num = pd.concat([df_num,d],axis=1)

df_close

pandas应用实例之pivot函数详解

第二种方法就是使用pivot函数,一行代码解决,运行快速。

df_num = df.pivot(index="date",columns="code",values="num")

pandas应用实例之pivot函数详解

想要的形式的dataframe生成了就可以直接调用corr()函数直接求出code之间的相关性了

# 计算列之间的相关性
df_num.corr()

pandas应用实例之pivot函数详解

总结

到此这篇关于pandas应用实例之pivot函数的文章就介绍到这了,更多相关pandas pivot函数内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/superY_26/article/details/112689493

延伸 · 阅读

精彩推荐
  • PythonTensorFlow实现Batch Normalization

    TensorFlow实现Batch Normalization

    这篇文章主要为大家详细介绍了TensorFlow实现Batch Normalization,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    marsjhao7022021-01-20
  • Pythontensorflow2.0的函数签名与图结构(推荐)

    tensorflow2.0的函数签名与图结构(推荐)

    这篇文章主要介绍了tensorflow2.0的函数签名与图结构,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 ...

    兰钧8702020-05-26
  • Pythonpython使用wxpy实现微信消息防撤回脚本

    python使用wxpy实现微信消息防撤回脚本

    这篇文章主要为大家详细介绍了python使用wxpy实现微信消息防撤回脚本,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    babaili_8512021-06-21
  • Python编写Python爬虫抓取暴走漫画上gif图片的实例分享

    编写Python爬虫抓取暴走漫画上gif图片的实例分享

    这篇文章主要介绍了编写Python爬虫抓取暴走漫画上gif图片的实例分享,示例代码为Python3,利用到了urllib模块、request模块和BeautifulSoup模块,需要的朋友可以参考...

    脚本之家3932020-08-20
  • PythonDjango框架使用富文本编辑器Uedit的方法分析

    Django框架使用富文本编辑器Uedit的方法分析

    这篇文章主要介绍了Django框架使用富文本编辑器Uedit的方法,结合实例形式分析了Django框架中使用Uedit的安装、配置方法及Uedit相关插件制作方法,需要的朋友...

    站在两个世界的边缘4572021-03-24
  • PythonPython产生Gnuplot绘图数据的方法

    Python产生Gnuplot绘图数据的方法

    今天小编就为大家分享一篇Python产生Gnuplot绘图数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    落叶_小唱10282021-04-17
  • Python如何利用Python动态展示排序算法

    如何利用Python动态展示排序算法

    Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,能够简单、有效地实现面向对象编程,下面这篇文章主要给大家介绍了关于如何利用...

    微小冷5822022-01-24
  • PythonPython标准异常和异常处理详解

    Python标准异常和异常处理详解

    这篇文章主要介绍了Python标准异常和异常处理详解,本文讲解了python标准异常、什么是异常、异常处理的多种方法和实例等内容,需要的朋友可以参考下 ...

    脚本之家5342020-05-21