gpt4 book ai didi

python - Python新手问题: How to create crosstabs across multiple predictor variables and outcome variable

转载 作者:行者123 更新时间:2023-12-01 01:28:12 25 4
gpt4 key购买 nike

使用以下包含二进制 0/1 变量的测试数据帧:

test_df = pd.DataFrame([
[0, 0, 0, 1],
[1, 0, 1, 1],
[0, 0, 0, 1],
[1, 0, 1, 0],
[0, 0, 0, 0],
[1, 0, 1, 0]], columns=["y", "age_catg", "race_catg", "sex_catg"])

我想使用 pd.crosstab() 函数创建 y 与age_catg、race_catg、sex_catg 的双向表,以便检查 y 值在预测变量类别。

我的实际数据框包含数千个预测变量,因此我宁愿使用 # 列,而不是明确命名年龄、种族和性别预测变量。但是,我仍然对 Python 中的行和列引用感到困惑 - 例如以下代码不起作用:

desc_tab = pd.crosstab(test_df[:,1],  test_df[:,2:4])     
desc_tab

最佳答案

要使用整数索引,您需要 iloc方法:

pd.crosstab(test_df.iloc[:, 1], test_df.iloc[:, 2])

输出:

race_catg  0  1
age_catg
0 3 3

如果将多个数组/系列放入列表中,则可以将它们传递到列或行:

pd.crosstab(test_df.iloc[:, 1], [test_df.iloc[:, 2], test_df.iloc[:, 3]])

race_catg 0 1
sex_catg 0 1 0 1
age_catg
0 1 2 2 1

编辑

如果你想通过索引批量定义列(list是Python中的保留字,请不要使用它):

cols = [test_df.iloc[:, i] for i in [2, 3]]
pd.crosstab(test_df.iloc[:, 1], cols)

输出:

race_catg  0     1   
sex_catg 0 1 0 1
age_catg
0 1 2 2 1

关于python - Python新手问题: How to create crosstabs across multiple predictor variables and outcome variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53159108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com