Hed*_*Hog 5 python dataframe pandas
我喜欢展示效果良好的value_counts(normalize=True)内容series,但我也想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)
Run Code Online (Sandbox Code Playgroud)
预期产出
perc count
Toyota Corolla 0.25 1
Audi A4 0.25 1
Honda Civic 0.25 1
0.25 1
Name: Brand, dtype: float64
Run Code Online (Sandbox Code Playgroud)
问题
我怎样才能将这两个信息附加到该系列中?
如果想使用,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
Run Code Online (Sandbox Code Playgroud)
另一个想法是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
Run Code Online (Sandbox Code Playgroud)
df = df.Brand.value_counts(normalize=True).to_frame('perc')
df['count'] = df['perc'].mul(len(df))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11453 次 |
| 最近记录: |