- グループID(
'CG'
、int型)で主に構成されていDATAFRAME、'compact'
、中銀河のグループのカタログ、 - 大きさ(
'R'
を持っています、負の浮動小数点) - および形態(
'Morph'
、文字列、たとえば 'S'または 'E')。
Iは、グループの次の特性を有する第二パンダのデータフレームを構築しようとしている:第二最低間の最小'R'
'Morph'
とグループ内の最も低い'R'
- グループ内の最も低い
'R'
とグループのRとの差は、-2.5*log10(sum(10**(-0.4*R)))
と定義されます210
- グループ内にある
'Morph'
(「S」の列に、他のモフォロジーに1つなど)を持つオブジェクトの割合。'R'
が最も小さいものをカウントしません。
私は最後の問題に苦しんでいます。それを書くのを手伝ってもらえますか?他のものはうまくいきますが、二次的な質問として、私がそれを清潔にしているのか、そうするのが良いのかと思います。ここで
は私の(私が欲しいものを正確に与えるものではありませんが、働く私の最後の列の行で、かつ動作しないコメントでTRY)コードです:GroupBy = compact.sort_values('R').groupby('CG', as_index=False)
R2 = GroupBy.head(2).groupby('CG', as_index=False).last().R
R1 = GroupBy.first().sort_values('CG').R
DeltaR12 = R2 - R1
MorphCen = GroupBy.first().sort_values('CG').Morph
Group = GroupBy.first().sort_values('CG').CG
RGroup = GroupBy.apply(lambda x: -2.5*np.log10((10**(-0.4*x.R)).sum()))
DeltaR1gr = R1 - RGroup
# Works, but counts the object with lowest R:
PropS = GroupBy.apply(lambda x: 1.0*x.loc[x['Morph'] == 'S'].shape[0]/x.shape[0])
# Tries to let aside lowest R, but doesn't work:
# PropS = GroupBy.apply(lambda x: 1.0*x.loc[x['Morph'] == 'S' &
# x['R']>x['R'].min()].shape[0]/x.shape[0])
# PropRed = same than PropS, but for 'Morph' != 'S'
CompactML = pd.DataFrame([Group,MorphCen,DeltaR12,DeltaR1gr]).transpose()
CompactML.columns = ['CG', 'MorphCen', 'DeltaR12','DeltaR1gr']
は、私はそれがどのように動作するかを理解し、ありがとうございました! :)模擬データを申し訳ありません、私はそれを次回提供します。 – Matt
コードの大部分が正常に動作します。私のためだけでなく、あなたの例でも 'diff'だけが間違っています。私は何が起こっているのか把握しようとしています。再度、感謝します! – Matt
OK、そうです。私は適切なコードを掲示し、私はあなたの答えを受け入れる。再度、感謝します! – Matt