Python 熊猫-落楠';每列s,并用0快速填充?

Python 熊猫-落楠';每列s,并用0快速填充?,python,pandas,lstm,zero-padding,Python,Pandas,Lstm,Zero Padding,我有一个数据框,如下所示,有上万行和上千列: 对于LSTM,我想 仅提取每列的值 将它们放在数据帧的开头,然后 在值启动到索引99之前填充0 但是,请注意,并非每一列的值都相同。有些已经有很多了,有些还没有。生成值的时间戳也是特定于列的。我用下面的代码实现了这个结果。但是,由于代码非常慢(700小时),我正在寻找更快地执行计算逻辑的可能性。这需要很长时间,因为我想计算从2008年到2020年每小时时间戳的这种结果 有没有办法使代码更快? df1=pd.DataFrame(index=range

我有一个数据框,如下所示,有上万行和上千列:

对于LSTM,我想

  • 仅提取每列的值
  • 将它们放在数据帧的开头,然后
  • 在值启动到索引99之前填充0
  • 但是,请注意,并非每一列的值都相同。有些已经有很多了,有些还没有。生成值的时间戳也是特定于列的。我用下面的代码实现了这个结果。但是,由于代码非常慢(700小时),我正在寻找更快地执行计算逻辑的可能性。这需要很长时间,因为我想计算从2008年到2020年每小时时间戳的这种结果

    有没有办法使代码更快?

    df1=pd.DataFrame(index=range(100),columns=dummydata.columns)
    for j in dummydata.columns:
        df1[j]=dummydata[(dummydata.index<=i)][j].dropna().iloc[-T:].iloc[::-1].reset_index(drop=True)
    df1=df1.fillna(0).reset_index(drop=True)
    
    df1=pd.DataFrame(索引=范围(100),列=dummydata.columns)
    对于dummydata.columns中的j:
    
    df1[j]=dummydata[(dummydata.index你能试试看这是否更快吗

    dummydata.apply(lambda x:pd.Series(x.dropna().values)).fillna(0)


    然后,您可以使用
    dummydata.loc[0:100,:]仅选择前100行

    您能提供一些示例数据和预期输出吗?当原始结果未知时,很难提供答案。此外,
    i
    T
    是什么?对不起,该代码位是较大代码的一部分。i是for循环中的迭代器,按循环顺序迭代所有时间戳。T=100。谢谢-这很有效,很快就能达到预期效果。