Скажем, у меня есть простой dataframe, df
:панды Force GroupBy преобразования, чтобы вернуть поплавки вместо Интс
df = pd.DataFrame({'a': [1, 2, 3, 4, 5, 6],
'b': [1, 2, 3, 4, 5, 6],
'c': ['q', 'q', 'q', 'q', 'w', 'w'],
'd': ['z', 'z', 'z', 'o', 'o', 'o']})
Если я использую GroupBy применять, все работает отлично:
df.groupby(['c', 'd']).apply(lambda x: pd.Series(np.sum(x.a + x.b) ** .5))
0
c d
q o 2.828427
z 3.464102
w o 4.690416
Но если я (плохо):
df.groupby(['c', 'd']).transform(lambda x: pd.Series(np.sum(x.a + x.b) ** .5))
a b
0 3 3
1 3 3
2 3 3
3 2 2
4 4 4
5 4 4
Пытается принудить плавать от в функции, по-видимому, не помогает:
df.groupby(['c', 'd']).transform(lambda x: pd.Series((float(np.sum(x.a + x.b)) ** .5), dtype='float'))
a b
0 3 3
1 3 3
2 3 3
3 2 2
4 4 4
5 4 4
Любая идея, что происходит или как это исправить?