0
おそらく単純な質問です。以下のコードを見て、次のサンプルを書き直して、その重複を避けることができますか?複数のファンクション入力で同じ操作を実行する
入力は、同じ列名で異なる値を含むパンダのデータフレームです。基本的には、異なるオブザーバからの同じイベントの測定値です。私は、この機能の長さ(と同様の複製があるもの - 供給されていないもの)を半分にカットしたいと思います。
これは、forループを使用する場所のように見えますが、関数入力を反復処理するために実装することができますか?私はこれが簡単な答えだと思っていますが、自分でGoogle検索を効果的にターゲットにして答えを明らかにすることはできませんでした。あなたが助けることを願っています!その後、
def data_manipulation(a, b):
"""
Performs math operations on the values contained in trajectory1(and 2). The raw values contained there are converted
to more useful forms: e.g. apparent to absolute magnitude. These new results are added to the pandas data frame.
Unnecessary data columns are deleted.
All equations/constants are lifted from read_data_JETS.
To Do: - remove code duplication where the same operation in written twice (once for each station).
:param a: Pandas Data Frame containing values from first station.
:param b: Pandas Data Frame containing values from second station.
:return:
"""
# Convert apparent magnitude ('Bright') to absolute magnitude (Abs_Mag).
a['Abs_Mag'] = (a['Bright'] + 2.5 *
np.log10((100 ** 2)/((a['dist']/1000) ** 2))) - 0.25
b['Abs_Mag'] = (b['Bright'] + 2.5 *
np.log10((100 ** 2)/((b['dist']/1000) ** 2))) - 0.25
# Calculate the error in absolute magnitude where 1 is the error in apparent magnitude and 0.001(km) is the error
# in distance ('dist').
a['Abs_Mag_Err'] = 1 + (5/(a['dist']/1000) * 0.001)
b['Abs_Mag_Err'] = 1 + (5/(b['dist']/1000) * 0.001)
# Calculate the meteor luminosity from absolute magnitude.
a['Luminosity'] = 525 * 10 ** (-0.4 * a['Abs_Mag'])
b['Luminosity'] = 525 * 10 ** (-0.4 * b['Abs_Mag'])
# Calculate the error in luminosity.
a['Luminosity_Err'] = abs(-0.4 * a['Luminosity'] * np.log(10) * a['Abs_Mag_Err'])
b['Luminosity_Err'] = abs(-0.4 * b['Luminosity'] * np.log(10) * b['Abs_Mag_Err'])
# Calculate the integrated luminosity of each meteor for both stations.
a['Intg_Luminosity'] = a['Luminosity'].sum() * 0.04
b['Intg_Luminosity'] = b['Luminosity'].sum() * 0.04
# Delete column containing apparent magnitude.
del a['Bright']
del b['Bright']
だけの関数に1つの辞書を渡し、二回(一回ごとの辞書のための)関数を呼び出します。 –
非常に良い、ありがとう! –