如何将VALUE_COUNTS(Normize=True)和VALUE_COUNTS()应用于Pandas系列?

jq6vz3qz  于 2022-09-21  发布在  其他
关注(0)|答案(2)|浏览(159)

我喜欢展示工作正常的seriesvalue_counts(normalize=True),但我还想在另一个专栏中展示未标准化的value_counts()

代码

import pandas as pd

cars = {'Brand': ['Honda Civic','Toyota Corolla','','Audi A4'],
        'Price': [32000,35000,37000,45000]
        }

df = pd.DataFrame(cars, columns = ['Brand', 'Price'])

df.Brand.value_counts(normalize=True)

预期产量

perc   count
Toyota Corolla    0.25   1
Audi A4           0.25   1
Honda Civic       0.25   1
                  0.25   1
Name: Brand, dtype: float64

问题

我如何才能将这两个信息都附加到系列中?

ecbunoof

ecbunoof1#

如果想要使用value_counts,则需要运行没有normalize=True代码:

df = pd.concat([df.Brand.value_counts(normalize=True),
                df.Brand.value_counts()], 
                axis=1,
                keys=('perc','count'))
print (df)
                perc  count
                0.25      1
Honda Civic     0.25      1
Toyota Corolla  0.25      1
Audi A4         0.25      1

另一个想法是在另一个步骤中创建perc列,DataFrame.insert用于设置新列的位置:

df = df.Brand.value_counts().to_frame('count')
df.insert(0, 'perc', df['count'].div(len(df)))

print (df)
                perc  count
                0.25      1
Honda Civic     0.25      1
Toyota Corolla  0.25      1
Audi A4         0.25      1
df = df.Brand.value_counts(normalize=True).to_frame('perc')
df['count'] = df['perc'].mul(len(df))
hgb9j2n6

hgb9j2n62#

您也可以尝试这种方式:pd.conat([df.Brand.Value_Counts(),df.Brand.Value_Counts(Normize=True)],Key=[‘Counts’,‘Normalized_Counts’],AXIS=1)

相关问题