Python 熊猫:从表格移动到矩阵布局
我有一个数据框,看起来像(它是一组组合): 我想将其转换为一个矩阵,其中新列和索引是其中两列(Python 熊猫:从表格移动到矩阵布局,python,pandas,Python,Pandas,我有一个数据框,看起来像(它是一组组合): 我想将其转换为一个矩阵,其中新列和索引是其中两列(a和B)的唯一值,单元格是第三列(C)中这两个唯一值之间的连接 使用A作为索引,B作为列,C作为单元格值,我会得到如下结果: B A 1 2 1 3 4 2 5 6 为了生成这个新的“矩阵”数据帧,我通过列A中的唯一值对原始DF进行迭代过滤,然后将C列作为一个系列,如下所示: for ind in unique_indexes: # made by using .drop_duplic
a
和B
)的唯一值,单元格是第三列(C
)中这两个唯一值之间的连接
使用A
作为索引,B
作为列,C
作为单元格值,我会得到如下结果:
B
A 1 2
1 3 4
2 5 6
为了生成这个新的“矩阵”数据帧,我通过列A
中的唯一值对原始DF进行迭代过滤,然后将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']
然后,我尝试将所有这些系列作为行粘在一个新的数据帧中,但无法将它们中的任何一个append
或concat
添加到新的数据帧中(在or之后),例如
是否有a)更好的转换方法,或b)我在将序列附加到数据帧时缺少的步骤
干杯你想做一个像这样的
透视表
>>> 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
干杯,我的用例也非常清楚
# with suitable placement in 'for' loop
df = DataFrame()
df.append(new_series)
>>> print df
Empty DataFrame
>>> 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