dataframe 分割某一列

转自:https://www.jianshu.com/p/4a2ecf65e3ea

原数据:

考核方式 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

猜你喜欢

转载自blog.csdn.net/The_lastest/article/details/82967490