用groupby和size方法将数据帧制表

2024-04-20 01:29:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Pandas数据帧out,我使用 以下系列:

out.groupby(['city','raingarden']).size()输出

city raingarden 55405 True 3 Edina True 7 MInneapolis True 8 Minneapolis False 2482 True 847 Minneapolis False 2 True 1 Minneapolis, True 1 Minneapolis, False 2 Minneapolsi False 5 True 3 Minnepolis False 4 Minnespolis False 4 Minnetonka False 1 True 2 Minnneapolis False 5 Mpla True 3 Mpls False 22 True 20 Mpls. False 8 True 17 NE Mpls True 6 Richfield True 1 SLP True 3 St Louis Park True 2 St. Louis Park False 1 Victoria False 1 Wayzata False 2 True 1 minneapolis False 3 mpls True 2 dtype: int64

我想把它输出到tabulate表。在

为此,我做了以下工作:

headers = ['city','has rain garden', 'n']
print tabulate(out.groupby(['city','raingarden']).size().to_frame(), headers, tablefmt="simple")

问题1:我需要得到一个关于计数的列名,但没有任何运气

问题2(可能与问题1相关),输出如下:

^{pr2}$

前两列是作为元组给出的?因此,如何将这些划分为单独的列,以及如何为计数添加标签?我确信我要达到的目标应该比我尝试的简单得多。在


Tags: falsetruecityparksizeoutheaders计数
1条回答
网友
1楼 · 发布于 2024-04-20 01:29:58

通过搜索两列,您正在创建一个多级索引Series,我相信这不是您想要的。我不确定原始数据是怎样的(在问题中提供out.head()会很好),但我相信您要寻找的是:

out.groupby('city').sum()['raingarden']

下面是一个随机生成的数据示例:

^{pr2}$

输出:

In [30]: out.groupby('city').sum()['raingarden']
Out[30]:
city
a    17
b     7
c    16
d     8
e    24
f    28
g    16
h    49
i    29
j    24
k     4
l     5
m    17
n    29
p    22
q    14
r    19
s     6
t    21
u     8
v    18
w    25
x    11
y     9
z    40
Name: raingarden, dtype: int64

相关问题 更多 >