如何使用datafram反规范化数据

2024-09-22 14:26:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫数据帧创建出来的CSV文件。 数据帧如下所示

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 

在大熊猫身上实现这一点的最佳方法是什么?你知道吗


Tags: 文件csv数据方法namelogtruetype
2条回答

您可以使用:

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

使用joinget_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

相关问题 更多 >