在Python中创建交叉表时出错。TypeError:列表索引必须是整数或切片,而不是元组

在Python中创建交叉表时出错。TypeError:列表索引必须是整数或切片,而不是元组,python,Python,我试图做一个交叉表,我得到的错误是:列表索引必须是整数或切片,而不是元组 我已经包含了括号和方括号,但没有任何效果 这是密码 y1 = np.array([df_train[df_train['dep_delayed_15min'] == 'Y']['UniqueCarrier'].value_counts().values]) y2 = np.array([df_train[df_train['dep_delayed_15min'] == 'N']['UniqueCarrier'].value

我试图做一个交叉表,我得到的错误是:列表索引必须是整数或切片,而不是元组

我已经包含了括号和方括号,但没有任何效果

这是密码

y1 = np.array([df_train[df_train['dep_delayed_15min'] == 'Y']['UniqueCarrier'].value_counts().values])
y2 = np.array([df_train[df_train['dep_delayed_15min'] == 'N']['UniqueCarrier'].value_counts().values])
y3 = y1+y2
y4 = y1/y3
y5 = y2/y3
y6 = set(df_train['UniqueCarrier'])

d = {'UniqueCarrier': [y6], 'Perc_Y': [y4], 'Perc_N': [y5]}
df = pd.DataFrame([d])

df.head()

pd.crosstab[df['UniqueCarrier'], df['Perc_Y'], df['Perc_N']]
这是我从df.head()中得到的,这不是我下一步所需要的,那就是用数字创建交叉表

    UniqueCarrier   Perc_Y  Perc_N
0   [{CO, FL, UA, DH, NW, B6, AS, DL, HP, EV, AA, ...   [[[0.21343323166688768, 0.1879379910809089, 0....   [[[0.7865667683331123, 0.8120620089190911, 0.8...

除非我很困惑,否则pd.crosstab是一个函数,所以应该用括号调用

pd.crosstab(df['UniqueCarrier'], df['Perc_Y'], df['Perc_N'])

帖子标题说错误是“TypeError:“list”对象不可调用”,但帖子正文说错误是“TypeError:list索引必须是整数或切片,而不是元组”。这是哪一个?你说得对,很抱歉造成混淆,错误是TypeError:列表索引必须是整数或片,而不是tuple@Junior请尝试以下代码:
pd.crosstab[[df['UniqueCarrier'],df['Perc_Y'],df['Perc_N']]
谢谢Dmitry,遗憾的是错误仍然存在:(嗨,SimonN,这给了我一个错误TypeError:“list”对象是不可调用的。你可以发布整个跟踪,这样我们就可以看到它对错误发生位置的描述了吗?当然,就是这样-------------------------------------------------------------------TypeError回溯(最后一次调用)在9 df=pd.DataFrame([d])10#df.head()-->11 pd.crosstab(df['UniqueCarrier',df['Perc_Y'],df['Perc_N'])类型错误:当我替换语句中np.unique的set时,无法调用list对象,如下面的y6=np.unique(df#train['UniqueCarrier'])我得到了这个错误------------------------------------------TypeError回溯(最近一次调用)在9 df=pd.DataFrame([d])10#df.head()-->11 pd.crosstab(df['UniqueCarrier'],df['Perc_Y'],df['Perc_N'])TypeError:'list'对象不可调用