重新标注数据透视表

时间:2014-03-17 10:56:43

标签: python merge pandas pivot-table

假设我有2个数据透视表并且我将它们合并,为了使案例简单,我将使用二进制数字。以下代码有效:

import pandas as pd

df=pd.DataFrame({'axis1': ['A','B','C','D'],
                 'A': [1,0,1,1],
                 'B': [1,0,0,0],
                 'C': [0,1,0,1],
                 'D': [1,0,1,0],
                 }).set_index(['axis1'])


df2=pd.DataFrame({'axis1': ['A','E','G','D'],
                 'E': [1,0,0,1],
                 'B': [1,1,0,0],
                 'C': [1,1,0,1],
                 'F': [1,0,1,0],
                 }).set_index(['axis1'])

print (df)
print (df2)

df3 = pd.concat((df, df2)).fillna(0)
g=df3.groupby(df3.index)
g=g.sum()
print(g)

有没有办法将所有数据标记为字符串,例如1='Y'0='N'2='M'

当将2个表与非二进制数字(即5,3,2.5)组合在一起时,是否有办法将df中的哪些数据专门与df分开,df2 + df1 +的组合DF2?

例如,在下面的图片中,我如何将数据从两个数据帧中分成3组红色,紫色和蓝色。

enter image description here

1 个答案:

答案 0 :(得分:0)

In [7]: replacers = {1: '1=Y', 0: '0=Y', 2: '2=M'}

In [10]: g.replace(replacers)
Out[10]: 
         A    B    C    D    E    F
axis1                              
A      1=Y  2=M  1=Y  1=Y  1=Y  1=Y
B      0=Y  0=Y  1=Y  0=Y  0=Y  0=Y
C      1=Y  0=Y  0=Y  1=Y  0=Y  0=Y
D      1=Y  0=Y  2=M  0=Y  1=Y  0=Y
E      0=Y  1=Y  1=Y  0=Y  0=Y  0=Y
G      0=Y  0=Y  0=Y  0=Y  0=Y  1=Y

[6 rows x 6 columns]

我不确定你的第二个问题意味着什么。也许您可以举例说明您的预期输出?

相关问题