(pandas)我想在groupby处添加到count,percent。

问题描述 投票:0回答:1

我做的是公路csv文件,并在csv文件中分组2个标题,所以我想互相计算1个标题的值和百分比总数,并添加数据框。

在test.csv里有很多数据。

==example==
country city   name
KOREA   busan  Kim
KOREA   busan  choi
KOREA   Seoul  park
USA     LA     Jane
Spain   Madrid Torres
(name is not overlap)
==========

csv_file = pd.read_csv("test.csv")
need_group = csv_file.groupby(['category','city names'])

返回

                               country                                   city names                                                  
0                              KOREA                                   Seoul, Busan, ...
1                              KOREA                                   Daegu, Seoul
2                              USA                                     LA, New York...
2                              USA                                     LA, ...

想要- 数是指

                               country                                 city names         count   percent                                               
0                              KOREA                                   Seoul                2       20%
1                              KOREA                                   Daegu                1       10%
2                              USA                                     LA                   2       20%
3                              USA                                     New York             1       10%
4                              Spain                                   Madrid               4       40%
python pandas pandas-groupby
1个回答
1
投票

我相信你需要每一个计数 countrynameGroupBy.size 再以百分比除以长度 DataFrame:

print (csv_file)
  country    city    name
0   KOREA   busan     Kim
1   KOREA   busan   Dongs
2   KOREA   Seoul    park
3     USA      LA    Jane
4   Spain  Madrid  Torres

df = csv_file.groupby(['country','city']).size().reset_index(name='count')
df['percent'] = df['count'].div(df['count'].sum()).mul(100)
© www.soinside.com 2019 - 2024. All rights reserved.