2016-10-23 177 views
0

我有一个数据框命名为df,它看起来像下面,我想将5行转换为合并它们的单个行。但 df=df.groupby(df.index).sum()似乎不适用于前两列,任何想法为什么以及如何纠正它? enter image description here熊猫数据框合并在行

回答

0

GroupBy.sum()方法将忽略所有不是数字的dtypes。

演示:

In [137]: df 
Out[137]: 
    a b c s  date 
0 9 2 6 __6 2001-01-01 
1 0 1 2 __2 2001-01-02 
2 6 7 5 __5 2001-01-03 
3 6 8 5 __5 2001-01-04 
4 0 3 8 __8 2001-01-05 

In [138]: df.groupby('a').sum() 
Out[138]: 
    b c 
a 
0 4 10 
6 15 10 
9 2 6 

In [139]: df.dtypes 
Out[139]: 
a    int32 
b    int32 
c    int32 
s    object 
date datetime64[ns] 
dtype: object 
+0

但是,我的所有列的数据类型为float64 –

+0

@JayanthKumar,我从来没有看到之前浮动值,比如'BL';)(怎么样'EVENT_ID'列)? – MaxU

+0

我实际上是指新合并数据框中的列(不包括EVENT_ID列)。请参阅“ACTVOFT”栏。在合并的数据框中,它打印出7,但实际上它应该是2?我的问题是为什么是这样,该列的dtype是float64 –