Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从pivot_表中删除一列以更改分组逻辑_Python_Python 2.7_Pandas - Fatal编程技术网

Python 从pivot_表中删除一列以更改分组逻辑

Python 从pivot_表中删除一列以更改分组逻辑,python,python-2.7,pandas,Python,Python 2.7,Pandas,我有一个dataframe: df = GROUP HOUR TOTAL_SERVICE_TIME TOTAL_WAIT_TIME IS_EVALUATED IS_NEGATIVE_GRADE AAA 7 24 32 0 0 AAA 7 23 30 1 0 AAA 8 25

我有一个
dataframe

df =
GROUP  HOUR  TOTAL_SERVICE_TIME  TOTAL_WAIT_TIME  IS_EVALUATED  IS_NEGATIVE_GRADE
AAA    7     24                  32               0             0
AAA    7     23                  30               1             0
AAA    8     25                  31               1             1
BBB    7     26                  33               1             0
BBB    8     27                  31               1             0
我想调整下面给定的代码,使其仅按
GROUP
对数据进行分组。我不想使用列
HOUR
。我想知道我是否可以使用
pivot\u table
而不使用
HOUR
,这样数据只按
GROUP
分组,而忽略
HOUR

piv_df = df.pivot_table(index='GROUP', columns='HOUR', fill_value=0).stack()
avg_tot = piv_df[['TOTAL_SERVICE_TIME', 'TOTAL_WAIT_TIME']].add_prefix("AVG_")
avg_pct1 = piv_df['IS_EVALUATED'].mul(100).astype(int)
avg_pct2 = piv_df['IS_NEGATIVE_GRADE'].mul(100).astype(int)
fresult = avg_tot.join(avg_pct1.to_frame("AVG_PERCENT_EVAL_1")).join(avg_pct2.to_frame("AVG_PERCENT_NEGATIVE")).reset_index()

如果没有
columns='Hour'
,则不再需要
stack

piv_df = df.pivot_table(index='GROUP', fill_value=0)
avg_tot = piv_df[['TOTAL_SERVICE_TIME', 'TOTAL_WAIT_TIME']].add_prefix("AVG_")
avg_pct1 = piv_df['IS_EVALUATED'].mul(100).astype(int)
avg_pct2 = piv_df['IS_NEGATIVE_GRADE'].mul(100).astype(int)
fresult = avg_tot.join(avg_pct1.to_frame("AVG_PERCENT_EVAL_1")).join(avg_pct2.to_frame("AVG_PERCENT_NEGATIVE")).reset_index()

fresult

数据请@皮尔斯:好的,等一下。我认为这个问题可能不需要数据。@piRSquared:我发布了数据。它可能不需要。。。通常,问题并不重要。然而,这有助于我们这些回答问题的人摆脱困惑。没有它,我不得不想太多,弄明白你想做什么。如果我遇到问题,我必须弄清楚这是否是因为我对数据做出了错误的假设。所以,也许它是需要的,也许它不是。但是如果你想最大限度地让你的问题得到回答。。。最好提供它。