1

私は次のデータ構造を持っています(まだ変更される可能性があります):

pp = ([Pair1, Pair2, Pair3, ..., Pair25])

各ペアには次の形式があります。

 <class 'pandas.core.frame.DataFrame'>
 DatetimeIndex: 2016 entries, 2005-09-19 00:00:00 to 2013-09-12 00:00:00
 Data columns (total 2 columns):
 CA      2016  non-null values
 Na      2016  non-null values

DataFrame ごとに毎日適用する必要がある関数がたくさんあります。ただし、ペア 1、ペア 2、ペア 3 のように For ループがステップごとに実行されない場合があります。For ループはむしろ毎日実行する必要があります。次に例を示します。

 2005-09-19: do function for each pair!
 2005-09-20  and continue
 2005-09-21 
 2005-09-22 

それを行う方法はありますか、それともデータ構造とコードを完全に変更する必要がありますか?

更新 1

しかし、これは私が今いるところですが、効率的ですか?

for i in range(len(ps[1])):
    for row in ps:
    print row[i:i+1]


                 A      C               DE
Date                                       
2005-09-19 -0.600021  4.649857            3
                 A     G                DE
Date                                      
2005-09-19 -0.600021  6.39693     0.105716
                 A     W                DE
Date                                       
2005-09-19 -0.600021  6.950815            5
                 A      C               DE
Date                                      
2005-09-20 -0.59711  4.637831            3
                 A      G               DE
Date                                       
2005-09-20 -0.59711  6.396263     0.109079
                 A     W                 DE
Date                                      
2005-09-20 -0.59711  6.951772            5
                 A      C                DE
Date                                       
2005-09-21 -0.594207  4.641213            3
                 A     G                 DE
Date                                          
2005-09-21 -0.594207  6.40059     0.109055
                 A     W                DE
Date                                       
2005-09-21 -0.594207  6.955593            5
4

1 に答える 1

2

それらを別々のデータ フレームにする必要がない場合は、マルチ インデックスまたはそれらがどのペアに属しているかを示す列を使用して、それらを 1 つのデータ フレームに結合する必要があります。次に、関数アプリケーションを実行するためにグループ化できます。

DF.groupby(['Date','pair']).apply(function)
于 2013-10-16T04:55:58.907 に答える