我有一个类似以下的数据框,具有超过90000行。
origin destination people
101011001 101011001 7378
101011001 101011002 120
101011001 101011002 8
101011001 101011002 285
101011001 101011003 7
101011001 101011004 0
101011001 101011004 1
101011001 101011004 2
101011001 101011004 9
101011002 101011001 5
如您所见,某些origin
和destination
值会重复,例如,存在多行,其中origin = 101011001,destination = 101011002。
我的目标是将重复的origin
和destination
值和 sum 分组到people
列中,因此数据帧如下所示:
origin destination people
101011001 101011001 7378
101011001 101011002 413
101011001 101011003 7
101011001 101011004 12
101011002 101011001 5
我尝试了jsondf.groupby(['origin', 'destination']).sum()
,它为我提供了正确的总和和目标值,但是这并不是我想要的,因为我希望原始值也显示在每个目标行中。
注意,我的最终目标是将该数据帧作为表放入SQL数据库中,并使用上面的.groupby()
代码,将原始值和目标值实际上解释为NULL,即不是我想要的
谢谢!
答案 0 :(得分:0)
一种获取每个原始值显示的快速简便的方法是在使用groupby之后简单地重置索引。这是一个示例,显示重置索引前后数据库的外观:
df.groupby(['origin', 'destination']).sum()
origin destination people
101011001 101011001 7378
101011002 413
101011003 7
101011004 12
101011002 101011001 5
一旦添加了reset_index(),数据框将在每一行中表示每个原始值。
df.groupby(['origin', 'destination']).sum().reset_index()
origin destination people
0 101011001 101011001 7378
1 101011001 101011002 413
2 101011001 101011003 7
3 101011001 101011004 12
4 101011002 101011001 5
这应该允许您发送到sql数据库,而无需将原始解释为空值。