1

我有一个看起来像的 DataFrame(它是一组组合):

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

我想将其转换为一个矩阵,其中新列和索引是其中两列 (AB) 的唯一值,而单元格是第三列 ( C) 中这两个唯一值之间的连接。

作为A索引,B作为列和C单元格值,我会有类似的东西:

   B
A  1 2
1  3 4  
2  5 6

为了生成这个新的“矩阵”DataFrame,我通过 columns 中的唯一值迭代地过滤原始 DF A,然后将该C列作为一个 Series,例如:

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 中的行粘合在一起,但不能将它们中的任何一个放到新的 DataFrame 中(在文档或类似append问题之后),例如concat

# 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 回答