- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有以下代码通过 seaborn 创建一个表格和一个条形图。
#Building a dataframe grouped by the # of Engagement Types
sales_type = sales.groupby('# of Engagement Types').sum()
#Calculating the % of people who bought the course by # engagement types
sales_type['% Sales per Participants'] = round(100*(sales_type['Sales'] / sales_type['Had an Engagement']), 2)
#Calculating the # of people who didn't have any engagements
sales_type.set_value(index=0, col='Had an Engagement', value=sales[sales['Had an Engagement']==0].count()['Sales'])
#Calculating the % of sales for those who didn't have any engagements
sales_type.set_value(index=0, col='% Sales per Participants',
value=round(100 * (sales_type.ix[0, 'Sales'] /
sales[sales['Had an Engagement']==0].count()['Sales']),2))
#Setting the graph image
fig, (ax1) = plt.subplots(nrows=1, ncols=1, figsize=(12,4))
sns.set_style("whitegrid")
# Ploting the histagram for the % of total prospects
ax1 = sns.barplot(x=sales_type.index,y='% Sales per Participants', data=sales_type ,ax=ax1)
ax1.set(ylabel = '%')
ax1.set_title('% Sales per Participants By # of Engagement Types')
#present the table
sales_type.xs(['Had an Engagement', 'Sales','% Sales per Participants'],axis=1).transpose()
#sales_type
我对其他没有问题的参数使用相同的代码概念。但是,对于一个参数,我收到一个错误:行代码的“ValueError: Grouper for '' not 1-dimensional”:
ax1 = sns.barplot(x=sales_type.index,y='% Sales per Participants', data=sales_type ,ax=ax1)
尽管数据框的维度不超过一维,但仍会发生此错误。
这是 table 的头:
Sales Pre-Ordered / Ordered Book \
# of Engagement Types
0 1.0 0.0
1 20.0 496.0
2 51.0 434.0
3 82.0 248.0
4 71.0 153.0
5 49.0 97.0
6 5.0 24.0
Opted In For / Clicked to Kindle Viewed PLC \
# of Engagement Types
0 0.0 0
1 27034.0 5920
2 6953.0 6022
3 1990.0 1958
4 714.0 746
5 196.0 204
6 24.0 24
# of PLC Engagement Viewed Webinar \
# of Engagement Types
0 0.0 0
1 6434.0 1484
2 7469.0 1521
3 2940.0 1450
4 1381.0 724
5 463.0 198
6 54.0 24
# of Webinars (Live/Replay) \
# of Engagement Types
0 0.0
1 1613.0
2 1730.0
3 1768.0
4 1018.0
5 355.0
6 45.0
OCCC Facebook Group Member Engaged in Cart-Open \
# of Engagement Types
0 0.0 0
1 148.0 160
2 498.0 1206
3 443.0 967
4 356.0 511
5 168.0 177
6 24.0 24
# of Engagement at Cart Open Had an Engagement \
# of Engagement Types
0 0.0 3387
1 189.0 35242
2 1398.0 8317
3 1192.0 2352
4 735.0 801
5 269.0 208
6 40.0 24
Total # of Engagements % Sales per Participants
# of Engagement Types
0 0.0 0.03
1 35914.0 0.06
2 18482.0 0.61
3 8581.0 3.49
4 4357.0 8.86
5 1548.0 23.56
6 211.0 20.83
这是完整的错误:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-211-f0185fe64c1a> in <module>()
12 sns.set_style("whitegrid")
13 # Ploting the histagram for the % of total prospects
---> 14 ax1 = sns.barplot(x=sales_type.index,y='% Sales per Participants', data=sales_type ,ax=ax1)
15 ax1.set(ylabel = '%')
16 ax1.set_title('% Sales per Participants By # of Engagement Types')
ValueError: Grouper for '<class 'pandas.core.frame.DataFrame'>' not 1-dimensional
我已尝试在 Internet 和 Stack Overflow 上搜索此错误,但没有得到任何结果。有人知道发生了什么吗?
最佳答案
我也遇到了这个问题,发现是列名重复造成的。
要重新创建这个:
df = pd.DataFrame({"foo": [1,2,3], "bar": [1,2,3]})
df.rename(columns={'foo': 'bar'}, inplace=True)
bar bar
0 1 1
1 2 2
2 3 3
df.groupby('bar')
ValueError: Grouper for 'bar' not 1-dimensional
就像很多神秘的 pandas 错误一样,这个错误也源于有两个同名的列。
确定您要使用哪一列,重命名或删除另一列并重做操作。
像这样重命名列
df.columns = ['foo', 'bar']
foo bar
0 1 1
1 2 2
2 3 3
df.groupby('bar')
<pandas.core.groupby.DataFrameGroupBy object at 0x1066dd950>
关于python - 值错误 : Grouper for <something> not 1-dimensional,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43298192/
我的意思是: 给定输入的数字集: 1,2,3,4,5 变成“1-5”。 1,2,3,5,7,9,10,11,12,14 变成“1-3, 5, 7, 9-12, 14” 这是我想出的最好的:[C#] 我
考虑一个具有 MultiIndex 的系列,该系列在级别 0 上提供自然分组值,在级别 1 上提供时间序列: s = pd.Series(range(12), index=pd.MultiIndex.
从这里开始: https://docs.python.org/3/library/itertools.html#itertools-recipes def grouper(iterable, n, f
我有每月的时间序列数据,这些数据既缺少一些条目,又由于其他原因分散了 NaN 值。我需要将数据汇总到季度和年度系列中,但我不想报告缺少数据的季度/年度数据。例如,在下面的数据中,我不想报告 2014
难道 pandas.Grouper 只被认为是用于日期?或者它也可以用于整数吗? 我想将 pandas.Grouper 与 pandas.pivot_table 结合使用。以下是有关如何将 panda
我有一个像这样的示例数据框: import pandas as pd df = pd.DataFrame({"id": [0]*5 + [1]*5, "time": ['20
我有一个时间序列,我正在将其重新采样为 5s 窗口,如下所示: INDEX size price 2018-05-07 21:53:13.731
我有一个数据集,我想按列和数据集中每个月的数据进行分组。我使用 pd.Grouper() 作为每月分组日期部分。 df.groupby(['A',pd.Grouper(key='date', freq
我正在尝试将 x 天的组放在另一列的组中。出于某种原因,当我添加另一级别的分组时,分组行为发生了变化。 参见下面的玩具示例: 创建一个包含 40 个连续日期、一个 ID 列和随机值的随机数据框: im
我搜索了 stackoverflow 以了解如何按月对 DateTime 进行分组,但出于某种原因我一直收到此错误,即使在我通过 pd.to.datetime 传递数据帧之后也是如此 TypeErro
我是Python新手。在阅读 python 标准库引用时,我对 itertools 食谱部分中的 grouper() 示例感到困惑。 我尝试将示例代码放入一个小程序中,如下所示: from itert
我正在尝试学习如何在 Python 中使用 itertools.groupby,我想找到每组字符的大小。起初我试图看看我是否可以找到单个组的长度: from itertools import grou
我有这个 Pandas 数据框 datetime machineID errorID 0 2015-01-06 03:00:00 1 error3 1
以下数据以5分钟为间隔 数据框名称为 df: 脚本 ID 约会时间 打开 高的 低的 关闭 体积 0 201 2019-02-04 14:55:00 1408.05 1408.05 1407 1408
我在我的数据集上编写了这两个 groupby 函数,第一个函数对我的数据进行分组,并将数据的日期时间分隔为开始日期时间、结束日期时间。 这是数据集: Blast HoleEast Coordinate
我有一个包含 38 列的数据框,其中一列是时间。我建立了一个bin框架空间 timeframe=['4-6','7-9','10-12','13-15','16-18','19-21','22-24'
我正在尝试获取每家医院每天的平均记录数。 |Hospital|Date|Number of Records 0|Hospital B|2018-02-12 16:07:54.183|5 1|Hospi
我有一个带有每小时时间戳的 DataFrame: 2019-01-01 0:00:00 1 2019-01-01 1:00:00 2 2019-01-1
我有这样的代码: y1 = data.groupby(['name', pd.Grouper(key='datetime', freq='15d')])['ext price'].mean() y=p
你好,我正在使用 Python 的 itertools 中的 Grouper 函数来削减大块的 select where in(idlist) 查询以提高 sqlite 性能。问题是石斑鱼填满了 ch
我是一名优秀的程序员,十分优秀!