【问题标题】:How to do contigency table如何做列联表
【发布时间】:2021-01-17 19:19:01
【问题描述】:

我有一些数据框,例如 this

我想从 Cars 列创建两个项目:
0 - 如果没有车
1 - 对于车主,不管有多少

到下一个我想做列联表,但我的代码不起作用:

df[['Cars','Purchased Bike']]
cars1 = df.loc[(df['Cars'] >= 1, 'Cars')]=1
### contigency##
contigency5= pd.crosstab(cars1['Cars'], cars1['Purchased Bike']) 

【问题讨论】:

    标签: python pandas dataframe numpy


    【解决方案1】:
    df = pd.DataFrame({
        'Cars': [0, 1, 2, 1, 0, 2, 0, 0, 3, 2],
        'Purchased Bike': ['No', 'No', 'No', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'No', 'Yes']
    })
    pd.crosstab(1*(df['Cars'] > 0), df['Purchased Bike'])
    >>>
    Purchased Bike  No  Yes
    Cars                   
    0                1    3
    1                3    3
    

    【讨论】:

    • 太棒了!你能解释一下为什么你放 1x(df 。这里发生了什么?
    • (df['Cars'] > 0) 给出一个布尔 pd.Series(如 [True, False...])。 1*(df['Cars'] > 0) 是 numpy 和 pandas 的快捷方式,用于制作 True -> 1 和 False -> 0。所以,你知道其余的。
    猜你喜欢
    • 1970-01-01
    • 2020-12-24
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    • 2019-01-31
    相关资源
    最近更新 更多