Получение процентов от Pandas - PullRequest
0 голосов
/ 13 июля 2020

0

Я работаю с набором данных из SQL в настоящее время -

import pandas as pd
df = spark.sql("select * from donor_counts_2015")
df_info = df.toPandas()
print(df_info)

Результат выглядит следующим образом (я не могу включить фактический результат по соображениям конфиденциальности) : введите здесь описание изображения

Как видите, это набор данных, в котором указано название фонда, а затем количество людей, сделавших пожертвования в этот фонд. Сейчас я пытаюсь подсчитать, какой процент средств имеет только одно пожертвование, какой процент - 2, 34 и т. Д. c. Мне интересно, есть ли простой способ сделать это с помощью pandas? Я также был бы признателен, если бы вы также смогли увидеть процентное соотношение различных фондов, например, какой процент средств имеет от 50 до 100 пожертвований, от 500 до 1000 и т. Д. c. Спасибо!

Ответы [ 2 ]

0 голосов
/ 13 июля 2020

Для первой задачи, чтобы получить процент столбца 'number_of_donations', вы можете сделать:

df['number_of_donations'].value_counts(normalize=True) * 100

Для второй задачи вам нужно создать новый столбец с категориями, а затем сделать то же:

# Create a Serie with categories
New_Serie = pd.cut(df.number_of_donations,bins=[0,100,200,500,99999999],labels = ['Few','Medium','Many','Too Many'])
# Change the name of the Column
New_Serie.name = Category
# Concat df and New_Serie
df = pd.concat([df, New_Serie], axis=1)
# Get the percentage of the Categories
df['Category'].value_counts(normalize=True) * 100
0 голосов
/ 13 июля 2020

Вы можете составить гистограмму пожертвований, чтобы визуализировать распределение. np.histogram может помочь. Или вы также можете отсортировать данные и подсчитать вручную.

...