将列值拉入新列pandas

时间:2015-08-05 18:59:52

标签: python pandas dataframe

我有一个Pandas数据框,如下所示:

c1 c2 c3 c4
p1 q1 r1 20
p2 q2 r2 10
p3 q3 r1 30

我想拉出列c3的唯一值并将它们变成新列,最终看起来如下所示 -

c1 c2 r1 r2
p1 q1 20 0 
p2 q2 0  10
p3 q3 30 0

有没有办法实现这个目标?我正在尝试使用数据透视表,但无法获得所需的结果。

1 个答案:

答案 0 :(得分:0)

您可以使用.where()分别创建列r1r2

# data
# =================================
print(df)

   c1  c2  c3  c4
0  p1  q1  r1  20
1  p2  q2  r2  10
2  p3  q3  r1  30

# processing
# ==================================
df['r1'] = df['c4'].where(df.c3 == 'r1', 0)
df['r2'] = df['c4'].where(df.c3 == 'r2', 0)
df.drop(['c3', 'c4'], axis=1)

   c1  c2  r1  r2
0  p1  q1  20   0
1  p2  q2   0  10
2  p3  q3  30   0