Как преобразовать результаты опроса в процентах от общего числа респондентов в питон-пандах? - PullRequest
0 голосов
/ 17 декабря 2018

Был проведен опрос с 2,233 респондентами, и следующие результаты оказались в следующих столбцах, Very interested, Somewhat interested и Not interested, как показано ниже

                    Very interested  Somewhat interested  Not interested 

A.                        1688,                444,               60,

B                         1629,                477,               74,

C                         1340,                734,              102,

D                         1332,                729,               127, 

E                         1263,                770,               136, 

Как их преобразоватьцифры в процентах от общего числа респондентов, что составляет 2233, и округление процентов до 2 десятичных знаков?

Ответы [ 3 ]

0 голосов
/ 17 декабря 2018

Используя ваши образцы данных, я удалил запятые, чтобы преобразовать их в целое число, а затем поменял местами действительные значения в процентах:

for col in list(df):
    df[col] = df[col].str.replace(',','')
    df[col] = pd.to_numeric(df[col])

(100. * df / 2233).round(2)

Вывод:

    Very interested     Somewhat interested     Not interested
A.  75.59                  19.88                    2.69
B   72.95                  21.36                    3.31
C   60.01                  32.87                    4.57
D   59.65                  32.65                    5.69
E   56.56                  34.48                    6.09
0 голосов
/ 23 июля 2019
df = df.astype(float)
df = (df/2233).round(2)
0 голосов
/ 17 декабря 2018

РЕДАКТИРОВАТЬ

Я только что написал небольшой файл Excel с предоставленными вами данными, и он работал:

Я использовал следующий файл Excel:

        Very Interested        Somewhat Interested        Not Interested

A           1688                       444                      60

B           1629                       477                      74

C           1340                       734                     102

D           1332                       729                     127

И код:

df = pandas.read_excel('./test.xlsx', sep=',', delimiter=None)
df = df.astype(float)
df = (100. * df/2233).round(2)

Итак, сначала я загружаю свой файл Excel и делаю его в DataFrame для панд, затем импровизирую все целые числа в числа с плавающей точкой, чтобы при сохранении числа с двумя точками десятичные дроби не обрезались... Затем перебирая все индексы и столбцы, делая математические вычисления и сохраняя их в правильном положении.Тогда это сделано.Работал для меня

И если вы хотите сохранить свой фрейм данных обратно в файл Excel, вы можете сделать это следующим образом:

writer = pd.ExcelWriter('output-in-percent.xlsx')
test.to_excel(writer, 'Sheet1')
writer.save()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...