Pandas Groupby具有多列的行

时间:2015-07-24 16:19:42

标签: python python-2.7 pandas group-by

我已经阅读了很多不同的加入方法,但仍然没有真正找到解决方案,我可以解决这个问题。希望得到一些意见或指导。

我有一个包含一组列的数据框,如下所示:

In [1]: df_old
Out[1]: 
CID     time_a     time_b     time_c     time_d
dc12    4:14pm     NaN        NaN        NaN
dc12    NaN        4:18pm     NaN        NaN
dc12    NaN        NaN        4:44pm     NaN
ab14    2:14pm     NaN        NaN        NaN
ab14    NaN        3:18pm     NaN        NaN
ab14    NaN        NaN        3:27pm     NaN
ab14    NaN        NaN        NaN        4:15pm

我想要的是以下内容:

In [2]: df_new
Out[2]: 

CID     time_a     time_b     time_c     time_d
dc12    4:14pm     4:18pm     4:44pm     NaN
ab14    2:14pm     3:18pm     3:27pm     4:15pm
...

我认为有一种方法可以用df.groupby()来实现,但是我无法得到任何结果,并且想知道是否有人能指出我正确的方向。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您可以使用CopyFile( "//192.168.168.81/htdocs/API/Pipedrive/Deals.csv"; "C:/Program Files/FileMaker/FileMaker/Server/Data/Documents/Deals.csv")然后调用groupby,这会给您看到的第一个非纳米值(这就是为什么我想知道是否只有一个):

.first()

这假设CID是列而不是索引。如果它是索引,请拨打>>> df.groupby("CID", as_index=False).first() CID time_a time_b time_c time_d 0 ab14 2:14pm 3:18pm 3:27pm 4:15pm 1 dc12 4:14pm 4:18pm 4:44pm NaN >>> df.groupby("CID", as_index=False, sort=False).first() CID time_a time_b time_c time_d 0 dc12 4:14pm 4:18pm 4:44pm NaN 1 ab14 2:14pm 3:18pm 3:27pm 4:15pm 或使用reset_index