我正尝试在python中复制this article,作为提高我的熊猫技能的一般方法。
现在,我面临以下问题。该文档的第11页将看到table12(a)和table2(b)。我找到了从表11到表12(a)的方法,但现在我陷入了困境。
我有以下数据框:
id date element value
12 MX17004 2010-02-02 tmax 27.3
13 MX17004 2010-02-02 tmin 14.4
22 MX17004 2010-02-03 tmax 24.1
23 MX17004 2010-02-03 tmin 14.4
44 MX17004 2010-03-05 tmax 32.1
45 MX17004 2010-03-05 tmin 14.2
如何使用它来获取“ tmax”和“ tmin”列?
我当然可以使用for循环,但是我读到某个地方,每当您发现自己在处理数据帧时执行复杂的代码时,就已经存在一个可以执行您想要做的功能的
到目前为止我最大的尝试:
weather_molten.pivot(index='date', columns='element', values='value')
结果:
如您所见,我现在有一个多索引DF(与本文的结果相差很远),我不再有'id'列...
有什么想法吗?
谢谢您的时间!
答案 0 :(得分:1)
你快到了!
pandas.DataFrame.pivot_table()
与pandas.DataFrame.pivot()
有点不同,它可以处理(1)多列作为索引,还可以处理(2)这些索引中的重复条目。
weather_molten.pivot_table(index=['id', 'date'], columns='element', values='value')
将解决问题。
如果您真的很想不使用多重索引,则可以.reset_index()
展平索引并使用常规的行号。
此页面中所描述的许多突变也在pandas文档Reshaping and Pivot Tables的本页上也进行了描述。