unstack
.
我的纵向/面板数据集
longfile
下表(数据输入代码在问题下方)。
time x y
USA 1 5 10
USA 2 5 12
USA 3 6 13
CAN 1 2 2
CAN 2 2 3
CAN 3 4 5
那么我
将数据转换为
widefile
,按时间索引,如下所示:
df1 = df.reset_index().set_index(['time','index']).unstack(-1)
print(df1)
x y
index CAN USA CAN USA
time
1 2 5 2 10
2 2 5 3 12
3 4 6 5 13
我现在想把文件切掉,
df1
-
train
包含
t==1
t==2
-
test
包含
t==3
.
我试过了:
train = df1[(df.time=='1')|(df.time=='2')]
还有这个:
train = df1[(df.time==1)|(df.time==2)]
但两者都会出错。
火车
x y
index CAN USA CAN USA
time
1 2 5 2 10
2 2 5 3 12
x y
index CAN USA CAN USA
time
3 4 6 5 13
数据输入代码
import numpy as np
import pandas as pd
data = np.array([['country','time','x','y'],
['USA',1, 5, 10],
['USA',2, 5, 12],
['USA',3,6, 13],
['CAN',1,2, 2],
['CAN',2,2, 3],
['CAN',3,4, 5]],
)
df = pd.DataFrame(data=data[1:,1:],
index=data[1:,0],
columns=data[0,1:])
df