私はこの作業をテキストファイルに印刷したいのです。このファイルには、ヘッダー情報と特定の名前のデータ列が含まれています。コードは次のとおりです。forループ内の複数の未知の変数をループする良い方法はありますか?
import numpy as np
data={'dpr_NS_corZFac': [np.nan, np.nan, 35.736231803894043, 36.331412792205811,
35.694644451141357, 36.576189994812012, 37.236752510070801,
38.173699378967285, 38.808069229125977, 36.761274337768555,
30.194313526153564],
'dpr_HS_corZFac': [np.nan, 38.550984859466553, 37.893826961517334, 40.246520042419434,
39.204437732696533, 37.227160930633545, 37.364296913146973,
40.320019721984863, 39.04454231262207, 33.014707565307617,
27.193448543548584],
'npol':[np.nan, np.nan, 35.736231803894043, 36.331412792205811,
35.694644451141357, 36.576189994812012, 37.236752510070801,
38.173699378967285, 38.808069229125977, 36.761274337768555,
30.194313526153564] }
datafile_path = '/home/cpabla/data/pandastext.txt'
with open(datafile_path, 'w+') as f:
f.write('Charanjit is writing this text file.')
f.write('\t'*4)
f.write('He continues to write....\n')
for tag in data:
f.write('{}\t\t'.format(tag))
f.write('\n')
for val1, val2, val3 in zip(data['dpr_NS_corZFac'], data['dpr_HS_corZFac'], data['npol']):
if np.isnan(val1): val1 = 99.99
if np.isnan(val2): val2 = 99.99
if np.isnan(val3): val3 = 99.99
f.write('{:.2f}'.format(val1))
f.write('\t'*7)
f.write('{:.2f}'.format(val2))
f.write('\t'*7)
f.write('{:.2f}'.format(val3))
f.write('\t'*7)
f.write('\n')
コードの詳細は重要ではありません。これは単に私の目的でテストするためのものです。どのように私はリストの辞書を持っていることに注意してください。私は辞書に未知の量のリストを持ち、例の出力に与えられたforのテキストファイルを生成したい。しかし、どのように私は複数の変数(この場合は私の辞書のリスト)をループすることに注意してください。私は明らかにこれを自動化したいので、forループに変数を追加し続ける必要はありません。だからこれを行うには良い方法がありますか?ここで
が出力されます。
Charanjit is writing this text file. He continues to write....
dpr_HS_corZFac dpr_NS_corZFac npol
99.99 99.99 99.99
99.99 38.55 99.99
35.74 37.89 35.74
36.33 40.25 36.33
35.69 39.20 35.69
36.58 37.23 36.58
37.24 37.36 37.24
38.17 40.32 38.17
38.81 39.04 38.81
36.76 33.01 36.76
30.19 27.19 30.19
テキストエディタへの実際の出力は、しかし、このようではありません。各列には、自分のヘッダー名の下にあります。出力は単に私がしようとしていることを示すことです。
おそらくあなたは、彼らがwouldnその後、juanpa.arrivillaga @ 'ジップ(data.values())' –
をしたいですどんな特定の順序でもありません。 – Duncan
はい、注文は私にとって重要です。私はそれが私が辞書のデータを定義した方法です。 –