将数据帧中的特定列(包含)除以另一个数据帧

2024-05-16 22:28:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大的数据集,我发现概率。虽然有很多专栏,但我只有两个感兴趣的动物和颜色。我想数一数动物出现的概率并打印颜色

animal   weight   color
dog      10       white
dog      11       white
cat      18       white
cat      15       black
bird     16       white
bird     11       black
bird     10       white
df=pd.read_csv('test.csv')
animal_color=df.groupby('animal').aspiration.value_counts().loc[:,['white','black']]
color=df.animal.value_counts()

我预计会有以下结果:

prob(animal=dog|color=white) = 100.0%
prob(animal=dog|color=black) = 0.00%
prob(animal=cat|color=white) = 50.0%
prob(animal=cat|color=black) = 50.0%
prob(animal=bird|color=white) = 66.67%
prob(animal=bird|color=black) = 33.33%

Tags: csvdfvalue颜色概率catcolorblack
1条回答
网友
1楼 · 发布于 2024-05-16 22:28:21

这里有两种方法

df.groupby(['animal']).color.value_counts(normalize=True)
animal  color
bird    white    0.666667
        black    0.333333
cat     black    0.500000
        white    0.500000
dog     white    1.000000
Name: color, dtype: float64

pd.crosstab(df.animal,df.color,normalize='index')
color      black     white
animal                    
bird    0.333333  0.666667
cat     0.500000  0.500000
dog     0.000000  1.000000

相关问题 更多 >