在进行panda数据操作,扩充时出现两个tricks:
- 使用data_pd.append(),进行行扩充数据时,行名需要相同,才能实现自动扩充
- 使用data_pd.columns= [], 修改行名时,不允许切片操作,只能按照原数据长建立一个列表赋值修改
# 遍历不同个体数据,进行数据拼接
response_pd = pd.DataFrame() #建立一个空panda
for ii in range(100, 106):
sub = 'Sub%d'%ii
index = np.where((np.array(filter_pd[sub+'_fg'])!=-100)&
(np.array(filter_pd[sub+'_frt'])!=-100))[0]
ii=ii-100
col_index =list(range(2, 7))+list(range(8, 20))+[23+ii*4,21+ii*4,22+ii*4]
# 筛选指定行列数据
temp_pd=filter_pd.iloc[index].iloc[:, col_index]
## 修改行名,注意这里不允许切片操作,只能按照原数据长,建立一个列表赋值
temp_pd.columns = list(temp_pd.columns)[:-3]+['first glance', 'first RT', 'last RT']
# 对行进行扩充,注意需要行名相同才会对应行进行数据扩充
response_pd = response_pd.append(temp_pd,
ignore_index=True)
print('table shape',response_pd.shape)