Первое размещение здесь - решили попробовать и научиться использовать python во время вынужденного отпуска Covid-19.
Я пытаюсь обобщить некоторые данные из довольно простой базы данных и использую функцию value_counts.
Вместо того, чтобы запускать его для каждого столбца в отдельности, я бы хотел l oop для каждого столбца и вернуть сводную таблицу. Я могу сделать это с помощью df.apply (pd.value_counts), но не могу понять, как вводить параметры в число значений, поскольку я хочу, чтобы dropna = False.
Basi c пример данных У меня есть:
# Import libraries
import pandas as pd
import numpy as np
# create list of winners and runnerup
data = [['john', 'barry'], ['john','barry'], [np.nan,'barry'], ['barry','john'],['john',np.nan],['linda','frank']]
# Create the pandas DataFrame
df = pd.DataFrame(data, columns = ['winner', 'runnerup'])
# print dataframe.
df
Как я делал подсчет значений для каждого столбца:
#Who won the most?
df['winner'].value_counts(dropna=False)
Output:
john 3
linda 1
barry 1
NaN 1
Name: winner, dtype: int64
Как я могу ввести dropna = False при использовании функции apply? Мне нравится таблица, которую она выводит ниже, но я хочу, чтобы NaN появлялся в списке.
#value counts table
df.apply(pd.value_counts)
winner runnerup
barry 1.0 3.0
frank NaN 1.0
john 3.0 1.0
linda 1.0 NaN
#value that is missing from list
#NaN 1.0 1.0
Буду признателен за любую помощь !!