【发布时间】:2015-09-27 01:15:52
【问题描述】:
我是 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
有人有想法吗?
【问题讨论】:
-
Text列的 dtype 为object,这可能意味着该列中的项目是字符串。它们都是数字字符串吗?或者某些行是否包含空格?No numeric types to aggregate建议Text必须是数字才能使df.pivot_table工作.... -
如果
Date和Location组成一个MultiIndex,df.unstack(level='Location')会简单得多。