python - 旋转 Pandas 数据框以生成(seaborn)热图

标签 python pandas seaborn

我是 Python 的新手,也是 SO 的新手。

我有一个名为 df 的 pandas 数据框,它看起来像:

                                 Text
Date        Location                           
2015-07-08  San Diego, CA        1
2015-07-07  Bellevue, WA         1
            Los Angeles, CA      1
            New York, NY         1
            Los Angeles, CA      1
            Unknown              1

我想使用以下方法对数据进行透视:

import pandas, numpy as np

df_pivoted = df.pivot_table(df, values=['Text'], index=['Date'],
    columns=['Location'],aggfunc=np.sum)

我们的想法是生成一个热图,按“位置”和“日期”显示“文本”的计数。

我得到错误:

TypeError: pivot_table() got multiple values for keyword argument 'values'

使用简化方法时:

df = df.pivot_table('Date', 'Location', 'Text')

我得到错误:

raise DataError('No numeric types to aggregate')

我正在使用 Python 2.7 和 Pandas 0.16.2

In[2]: df.dtypes
Out[2]: 
Date        datetime64[ns]
Text                object
Location            object
dtype: object

有人有想法吗?

最佳答案

import pandas as pd
import numpy as np

# just try to replicate your dataframe
# ==============================================
date = ['2015-07-08', '2015-07-07', '2015-07-07', '2015-07-07', '2015-07-07', '2015-07-07']
location = ['San Diego, CA', 'Bellevue, WA', 'Los Angeles, CA', 'New York, NY', 'Los Angeles, CA', 'Unknown']
text = [1] * 6
df = pd.DataFrame({'Date': date, 'Location': location, 'Text': text})

Out[141]: 
         Date         Location  Text
0  2015-07-08    San Diego, CA     1
1  2015-07-07     Bellevue, WA     1
2  2015-07-07  Los Angeles, CA     1
3  2015-07-07     New York, NY     1
4  2015-07-07  Los Angeles, CA     1
5  2015-07-07          Unknown     1

# processing
# ==============================================
pd.pivot_table(df, index='Date', columns='Location', values='Text', aggfunc=np.sum)

Out[142]: 
Location    Bellevue, WA  Los Angeles, CA  New York, NY  San Diego, CA  Unknown
Date                                                                           
2015-07-07             1                2             1            NaN        1
2015-07-08           NaN              NaN           NaN              1      NaN

关于python - 旋转 Pandas 数据框以生成(seaborn)热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31304342/

相关文章:

python - 在seaborn FacetGrid中的两个线图之间实现

python - BoxPlot:如何显示年度值而不是季度值?

python - 将df中的许多列减去另一df中的一列

python - 删除频率低的项目

Python unicode string literals::'\u0391' 和 u'\u0391' 有什么区别

python - 通过避免循环在 pandas 中向量化代码

python - 如何在 python 中对 POST 方法进行单元测试?

python - 我收到此错误 : TypeError: object() takes no parameters

python - 使用 Pandas 和 NaN 滚动标准差

python - 使用热图将线图与双轴图上的 xticks 对齐