如何使用pandas数据帧对数据进行去规范化

时间:2018-06-14 19:20:43

标签: python pandas

我有一个用CSV文件创建的pandas数据框。 数据框看起来像这样

srvr_name log_type       hour  
server1   impressionWin  18:00:00 
server1   transactionWin 18:00:00 
server2   impressionWin  18:00:00 
server2   transactionWin 18:00:00 

我想从中获得:

srvr_name impressionWin transactionWin hour
server1   true          true           18:00:00
server2   true          true           18:00:00 

在熊猫中实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

join get_dummies

一起使用
df.join(pd.get_dummies(df.log_type)).groupby(['srvr_name', 'hour']).sum().astype(bool)

                    impressionWin  transactionWin
srvr_name hour
server1   18:00:00           True            True
server2   18:00:00           True            True

答案 1 :(得分:1)

您可以使用:

df = pd.crosstab([df.srvr_name, df.hour], df.log_type).astype(bool).rename_axis(None, 1).reset_index()

输出:

  srvr_name      hour  impressionWin  transactionWin
0   server1  18:00:00           True            True
1   server2  18:00:00           True            True