1
私はPythonを初めて使いました。私は3つの列を持つデータフレームを持ち、最初の2つの列が同じ関連付けを持つ行を結合したいと考えています(つまり、この状況では列Aと列Bは実際には関係ありません)。例えば、このデータフレームで始まる:最初の2つの列の値が逆の場合に行を結合するPythonデータフレーム
A B C
x y 5
z z 6
y x 4
z y 3
y z 2
Iは、(y x
とx y
を組み合わせるとy z
とz y
)このようなデータフレームを生成できるようにしたい:方法
A B C
x y 9
z z 6
y z 5
任意の提案をこれをする?
ここに私のコードは、これまでのところです:
df = pd.DataFrame.from_dict({k:dict(v) for k,v in dic.items()}).fillna(0)
MG_df = df.stack().reset_index().rename(columns
{'level_0':'Source','level_1':'Target', 0:'Weight'})
pd.DataFrame(np.sort(MG_df[['Source','Target']].values, axis=1))
MG_df.groupby(['Source','Target']).Weight.sum().reset_index()
MG_df = MG_df[MG_df.Weight != 0]
'np.sortをGROUPBY使用することができます] .values' - 非常に良いアイデア! – MaxU
@マックス、ありがとうございました:) – Vaishali
ありがとうございました!私はまだ冗長な値を得ているようです(つまり、x yとy xは両方とも3列目の個別の値でリストされています)。私のコードは以下の通りです。私は間違って何をしていますか? – shay