1

次のような DataFrame があります (組み合わせのセットです)。

   A  B  C  
a  1  1  3  
b  1  2  4  
c  2  1  5  
d  2  2  6  

A新しい列とインデックスが 2 つの列 (とB) の一意の値であり、セルが 3 番目の列 ( ) からのこれら 2 つの一意の値の間の結合であるマトリックスに変換したいと思いますC

AインデックスBとして、列Cとして、セル値として、次のようになります。

   B
A  1 2
1  3 4  
2  5 6

この新しい「マトリックス」データフレームを生成するには、列の一意の値で元の DF を繰り返しフィルター処理し、次のように列をシリーズとしてA取得します。C

for ind in unique_indexes: # made by using .drop_duplicates on the column
    rows = original_table[(original_table['A'] == ind)] 
    new_series = rows['C']

次に、これらのシリーズのすべてを新しい DataFrame の行として接着しようとしていますが、それらのいずれかappendまたはconcat新しい DataFrame に入れることはできません (両方のドキュメントまたはSO に関する同様の質問に従ってください)。

# with suitable placement in 'for' loop
df = DataFrame()
df.append(new_series)

>>> print df
Empty DataFrame

a) この変換を行うためのより良い方法、または b) DataFrame にシリーズを追加する際に欠けているステップはありますか?

乾杯

4

1 に答える 1

0

このようなを作りたいpivot_tableですか?

>>> df
   A  B  C
a  1  1  3
b  1  2  4
c  2  1  5
d  2  2  6
>>> pd.pivot_table(df, rows="A", cols="B", values="C")
B  1  2
A      
1  3  4
2  5  6
于 2013-04-15T00:28:43.127 に答える