これで、元のデータフレームの既存のインデックスを使用して、新しい列名で新しいデータフレームを作成します。
いくつかのデータフレームのために
:y_cols
は新しい列名のリストで、
y_cols = ['x_pred','y_pred']
>>> ['x_pred','y_pred']
をここに:あなたが実行して、新しい列を指定することができます
old_df = pd.DataFrame({'x':[0,1,2,3],'y':[10,9,8,7]})
>>>
x y
0 0 10
1 1 9
2 2 8
3 3 7
columns = list(old_df)
>>>
['x', 'y']
。コードでは、このステップをycols = ['{}_{}d pred'.format(ticker, i) for i in range(hm_days)]
に置き換えます。
# Iterate over all columns names in y_cols
for i in y_cols:
old_df[i]=0
>>> old_df:
x y x_pred y_pred
0 0 10 0 0
1 1 9 0 0
2 2 8 0 0
3 3 7 0 0
:古いデータフレームと同じインデックスと(あなたが数値データを使用しているように見えるとして、この場合
0
に)プレースホルダ変数に新しい列を作成し、新しい列を取得するには
、
最後に、データフレームをスライスして、新しいデータフレームを新しい列名で取得し、古いデータフレームのインデックスを維持します。
df_new = old_df[y_cols]
>>>
x_pred y_pred
0 0 0
1 0 0
2 0 0
3 0 0
これは、あなたが持っている場合でも動作しますindex
の名前:
x y x_pred y_pred
Date
0 0 10 0 0
1 1 9 0 0
2 2 8 0 0
3 3 7 0 0
df_new = old_df[y_cols]
x_pred y_pred
Date
0 0 0
1 0 0
2 0 0
3 0 0
あなたは 'new_df = old_df [ycols]'行うことができますか? – Chuck
@CMorris:答えにエラーがあります:KeyError: "['** _ ** d pred']はインデックスにありません" – suku
だから、いくつかの列名に '** _ ** d'が必要ですか? – Chuck