我有一个三列的数据集,格式如下
t_stamp,Xval,Ytval
0.000543,0,10
0.000575,0,10
0.041324,1,10
0.041331,2,10
0.041336,3,10
0.04134,4,10
0.041345,5,10
0.04135,6,10
0.041354,7,10
df = pd.read_csv('test.csv')
我只想跑前三排,我可以像下面这样做
for i in range(1,4):
df['X_t'+str(i)] = df['X'].shift(i)
X = df[['X', 'X_t1', 'X_t2', 'X_t3']].values
如果我想做5个范围,我可以像下面这样做
for i in range(1,6):
df['X_t'+str(i)] = df['X'].shift(i)
X = df[['X', 'X_t1', 'X_t2', 'X_t3', 'X_t4', 'X_t5']].values
但是,如果我们想在更高的范围内运行它,这是没有效率的。我怎样才能自动化,这样我们就不必手动地将X的值赋值为X = df[['X', 'X_t1', 'X_t2', 'X_t3']].values
,比如说,如果我们想运行1000个范围?做X = df[['X', 'X_t1', 'X_t2', 'X_t3', 'X_t4', ..., 'X_1000']].values
是没有效率的。你知道吗
使用dict理解,构建列dict,创建临时数据帧并提取其值:
同样地
range
从0
开始,因为df.shift(0)
只是X
,这也是您想要的。你知道吗如果要替换这些
nan
值,可以先使用df.fillna(0)
,然后提取其值:或者,应用
np.nan_to_num
:或者,使用
dropna
,如果您同意数据帧被截断:与第一个示例相比,所有带有
nan
的行都被删除了。你知道吗相关问题 更多 >
编程相关推荐