从列唯一值创建列

时间:2014-05-22 05:03:35

标签: python pandas

我对Python很陌生,希望有人可以给我一些提示。我也非常喜欢在堆栈上发布流量,因此任何有关如何在其中显示表格的提示也一定会受到赞赏。

无论如何,我有两列D和J,如下图所示。我想创建一个新表,如下面的后面区域所示,我从J列中的唯一值创建列,并在每行中添加1以指示记录具有唯一值。有人从pandas库中建议了get_dummies。我在熊猫图书馆工作,但我又是新人。再次感谢您的任何建议。

在:

D | J

A | 1q

B | 2E

C | 7F 

后:

D | 1q |2E | 7F

A | 1 |

B | .. | 1

C | .. | .. | 1

2 个答案:

答案 0 :(得分:1)

In [45]: pd.get_dummies(df['J'])
Out[45]: 
   1q  2E  7F
D            
A   1   0   0
B   0   1   0
C   0   0   1

答案 1 :(得分:0)

它有效,但不是很直接

import pandas as pd

df = pd.DataFrame.from_dict({'D': ['A',  'B',  'C'] ,'J':['1q',  '2E', '7F']})
df = df.set_index('D')

uniqueJ = df['J'].unique()
res=pd.concat([df['J']==v for v in uniqueJ],axis=1)
res.columns=uniqueJ
res=res.applymap(lambda x: 1 if x else 0)