Функция Groupby, создающая 2 новых столбца [duplicate]

Вы пытались решить проблему с клейкой лентой?

Попробуйте определить, когда возникают ошибки, и исправьте их короткими операторами if, это не очень, но для некоторых проблем это единственное решение, и это один из них .

 if( (n * 0.1) < 100.0 ) { return n * 0.1 - 0.000000000000001 ;}
                    else { return n * 0.1 + 0.000000000000001 ;}    

У меня была такая же проблема в проекте научной симуляции в c #, и я могу сказать вам, что если вы проигнорируете эффект бабочки, он превратится в большого толстого дракона и укусит вас в a **

2
задан jezrael 9 March 2016 в 21:49
поделиться

3 ответа

try agg() function:

import numpy as np
import pandas as pd


df = pd.DataFrame(np.random.randint(0,5,size=(20, 3)), columns=list('ABC'))
print(df)

print(df.groupby('C').agg({'A': max, 'B':min}))

Выход:

    A  B  C
0   2  3  0
1   2  2  1
2   4  0  1
3   0  1  4
4   3  3  2
5   0  4  3
6   2  4  2
7   3  4  0
8   4  2  2
9   3  2  1
10  2  3  1
11  4  1  0
12  4  3  2
13  0  0  1
14  3  1  1
15  4  1  1
16  0  0  0
17  4  0  1
18  3  4  0
19  0  2  4
   A  B
C
0  4  0
1  4  0
2  4  2
3  0  4
4  0  1

В качестве альтернативы вы можете проверить функцию pandas.read_sql_query () ...

0
ответ дан MaxU 4 September 2018 в 08:09
поделиться

Вы можете использовать функцию agg

import pandas as pd
import numpy as np

df.groupby('something').agg({'column1': np.max, 'columns2': np.min})
0
ответ дан dmb 4 September 2018 в 08:09
поделиться

Вы можете использовать функцию agg :

DF2 = DF1.groupby('C').agg({'A': max, 'B': min})

Образец:

print DF1
   A   B  C  D
0  1   5  a  a
1  7   9  a  b
2  2  10  c  d
3  3   2  c  c

DF2 = DF1.groupby('C').agg({'A': max, 'B': min})

print DF2
   A  B
C      
a  7  5
c  3  2

GroupBy-fu: улучшения в группировке и агрегирование данных в пандах - хорошие объяснения.

2
ответ дан jezrael 4 September 2018 в 08:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: