2016-10-04 8 views
1

サイズ4のスライディングウィンドウを模倣するために、パンダのデータフレームにタプルを作成したいリストがあります。panda dataframeを作成してforループの値を追加する

tuples = pd.DataFrame() 
for index, row in expertsDF.iterrows(): 
     newlst = row['name'] 
     counter = 0 
     for x in newlst: 
     if counter < len(newlst) - 3: 
      tuples['A'] = x 
      tuples['B'] =newlst(counter+1) 
      tuples['C'] =newlst(counter+2) 
      tuples['D'] =newlst(counter+3) 
      counter = counter + 1 

newlstは次のようになります。

list (var1, var2, var3....) 

と私のデータフレームは、このようにする必要があります:

 A  B  C  D 
1 var1 var2 var3 var4 
2 var2 var3 var4 var5 
3 var3 var4 var5 var6 

これをPythonで行う方法はありますか?この近くには

+0

あなたの出力のサンプルを投稿できますか? –

+0

if条件内のコードが正しくないため、出力がありません。私は何をしようとしているのかを明らかにしようとしました。 – Kratos

+0

希望出力。 –

答えて

1

ですか?

import pandas as pd 
tuples = pd.DataFrame(columns=['A', 'B', 'C', 'D']) 
newlst = "abcdefg" 
i = 0 
for x in newlst: 
    if i < len(newlst) - 3: 
     t = pd.DataFrame([[x, newlst[i + 1], newlst[i + 2], newlst[i + 3]]], 
         columns=['A', 'B', 'C', 'D']) 
    tuples = tuples.append(t, ignore_index=True) 
    i += 1 
print tuples 

この版画:

A B C D 
0 a b c d 
1 b c d e 
2 c d e f 
3 d e f g 
+0

ありがとうございます!これはまさに私が望んでいたものです。 – Kratos

1

どのシリーズオブジェクトからのデータフレームを作成するでしょうか?

import pandas as pd 

data_list = list(map(lambda x: 'var{}'.format(x),range(0,100))) 
df = pd.Series(data_list[0:97]).to_frame(name='A') 
df['B'] = pd.Series(data_list[1:98]) 
df['C'] = pd.Series(data_list[2:99]) 
df['D'] = pd.Series(data_list[3:100]) 

df.head() 

# output 
#  A  B  C  D 
# 0 var0 var1 var2 var3 
# 1 var1 var2 var3 var4 
# 2 var2 var3 var4 var5 
# 3 var3 var4 var5 var6 
# 4 var4 var5 var6 var7 
関連する問題