keep gettin "AssertionError: arrays and names must have the same length" while trying to use panda cross tab
keep gettin "AssertionError: arrays and names must have the same length" while trying to use panda cross tab
这是我的代码
clf = RandomForestClassifier(n_jobs=2 , random_state=0)
clf.fit(df_train[features_train] , df_train['steps_title'])
y = clf.predict(df_test[features_test])
x = df_test['steps_title']
print(y)
print(x)
pd.crosstab(x, y , rownames='actual step', colnames='predict step')
steps_title是表示应聘者工作处理级别的标题。
x 和 y 的输出是:
y = [3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 2 3 3 3 3 3 3 3 2 3 2 2 3 3 3 2 3 3 3 2 3 2
3 3 2 2 3 3 3 3 3 3 3 2 3 2 3 2 2 3 2 3 3 2 2 3 3 2 3 3 2 3 3 3 3 3 2 3 3
3 3 3 3 3 3 2 2 3 3 2 3 2 2 2 3 2 3 3 3 3 2 3 3 3 3 2 3 3 2 2 3 3 3]
x:
0 3
1 3
2 3
3 3
4 2
..
103 2
104 2
105 3
106 2
107 3
它们的长度相同,都是 180。
我也尝试使用 tolist()
函数
将 x 和 y 转换为列表
提前致谢
尝试使用括号:
>>> pd.crosstab(x, y , rownames=['actual step'], colnames=['predict step'])
predict step 2 3
actual step
2 32 0
3 0 76
>>>
因为是复数rownames
和colnames
,需要加括号。
问题是 rownames
和 colnames
的用法:
rownames : sequence, default None
If passed, must match number of row arrays passed.
colnames : sequence, default None
If passed, must match number of column arrays passed.
它不能是标量。请参阅文档中的示例以获得正确的用法。
pd.crosstab(x, y , rownames=['actual step'], colnames=['predict step'])
这是我的代码
clf = RandomForestClassifier(n_jobs=2 , random_state=0)
clf.fit(df_train[features_train] , df_train['steps_title'])
y = clf.predict(df_test[features_test])
x = df_test['steps_title']
print(y)
print(x)
pd.crosstab(x, y , rownames='actual step', colnames='predict step')
steps_title是表示应聘者工作处理级别的标题。
x 和 y 的输出是:
y = [3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 2 3 3 3 3 3 3 3 2 3 2 2 3 3 3 2 3 3 3 2 3 2
3 3 2 2 3 3 3 3 3 3 3 2 3 2 3 2 2 3 2 3 3 2 2 3 3 2 3 3 2 3 3 3 3 3 2 3 3
3 3 3 3 3 3 2 2 3 3 2 3 2 2 2 3 2 3 3 3 3 2 3 3 3 3 2 3 3 2 2 3 3 3]
x:
0 3
1 3
2 3
3 3
4 2
..
103 2
104 2
105 3
106 2
107 3
它们的长度相同,都是 180。
我也尝试使用 tolist()
函数
将 x 和 y 转换为列表
提前致谢
尝试使用括号:
>>> pd.crosstab(x, y , rownames=['actual step'], colnames=['predict step'])
predict step 2 3
actual step
2 32 0
3 0 76
>>>
因为是复数rownames
和colnames
,需要加括号。
问题是 rownames
和 colnames
的用法:
rownames : sequence, default None
If passed, must match number of row arrays passed.
colnames : sequence, default None
If passed, must match number of column arrays passed.
它不能是标量。请参阅文档中的示例以获得正确的用法。
pd.crosstab(x, y , rownames=['actual step'], colnames=['predict step'])