Я попытался получить перекрестную таблицу данных, указанных срезом.
Но что-то не так в синтаксисе.
data.csv
как показано ниже
ia,ib,ic,id,ie,if,ig
a,0,0,0,e,0,g
0,b,0,0,e,f,0
0,0,c,d,0,f,g
А затем выполните python3 test.py
, как показано ниже
import pandas as pd
import enum
df = pd.read_csv('data.csv')
class Slices(enum.Enum):
first = slice(0, 2)
second = slice(4, 6)
def getCrosstab(*args):
cols1 = []
cols1.append(df.iloc[:, args[0].value])
cols2 = []
cols2.append(df.iloc[:, args[1].value])
print( pd.crosstab(cols1, cols2) )
if __name__ == '__main__':
getCrosstab(Slices.first, Slices.second)
Ожидаемый результат:
col2 ie if ig
col1
ia 1 0 1
ib 1 1 0
ic 0 1 1
Но у меня была ошибка:
ValueError: Форма переданных значений (2, 2), индексы подразумевают (2, 3)
Я не могу полностью понять значение этой ошибки.
Пожалуйста, дайте мне ваше руководство.