如何合并列--将dataFrame中所有非科学的学科类合并到到一个非科学列中,所有的科学列的数据合并到一个科学列中:
原始图为:
如上图,我们想将所有的非科学类学科列合并到一起成为一个非科学列,所有的科学列合并到一起成为一个科学列
首先,可以看到表里的数据只是各个学科的数据因此我们可以将该列布尔类型的数据转换为0和1表示的数据,这样就可以累加列,也就是一个用户他只要属于这些非科学类学科类的任意一科他的状态就变为1了。(转换过程在文章“如何将DataFrame中的FALSE/TRUE数据用0/1表示”)。
转换之后就是列累加,并将累加的结果(例如所有science学科)保存在一个新列df['Science']中,代码如下:
(1)在原dataframe上新建一个新列用来保存累加后的值:df['Science']=0
(2) 累加保存(这里我事先在原始csv文件中将所有的science学科的列名后加了‘_science’所以我们只需要寻找含有‘_science’的列名,并将其累加保存),代码如下:
df['science']=0
for col in df.columns:
if col.find('_science')>0:
df['science']=df['science']+df[col]