原数据:
考核方式 | ABCD十项值(A:1,B:2,C:3,D:4) | 教师姓名 |
考试 | 2,2,2,2,2,2,1,2,2,2 | 0 |
考试 | 2,3,3,3,2,2,2,2,2,2 | 1 |
考试 | 1,1,2,1,1,1,1,1,1,1 | 2 |
考试 | 1,2,2,2,3,2,2,3,1,2 | 3 |
通过 pandas
读入之后为:
import pandas as pd
names = ['C1','C2','C3']
data = pd.read_excel('./data/3000.xlsx',names=names)
print(data)
C1 C2 C3
0 考试 2,2,2,2,2,2,1,2,2,2 0
1 考试 2,3,3,3,2,2,2,2,2,2 1
2 考试 1,1,2,1,1,1,1,1,1,1 2
3 考试 1,2,2,2,3,2,2,3,1,2 3
可以看到需要分割C2
这一列:
print(data['C2'].str.split(',', expand=True))
0 1 2 3 4 5 6 7 8 9
0 2 2 2 2 2 2 1 2 2 2
1 2 3 3 3 2 2 2 2 2 2
2 1 1 2 1 1 1 1 1 1 1
3 1 2 2 2 3 2 2 3 1 2
同原有的进行合并:
data = pd.merge(data,(data['C2'].str.split(',', expand=True)),how='left',left_index=True,right_index=True)
print(data)
C1 C2 C3 0 1 2 3 4 5 6 7 8 9
0 考试 2,2,2,2,2,2,1,2,2,2 0 2 2 2 2 2 2 1 2 2 2
1 考试 2,3,3,3,2,2,2,2,2,2 1 2 3 3 3 2 2 2 2 2 2
2 考试 1,1,2,1,1,1,1,1,1,1 2 1 1 2 1 1 1 1 1 1 1
3 考试 1,2,2,2,3,2,2,3,1,2 3 1 2 2 2 3 2 2 3 1 2