Я пытался задать вопрос ранее, но удалил, чтобы я мог задать более четко и показать, что я пытаюсь, если он близко.
Мой образец df
day a b
5/11/19 3 1
5/11/19 4 6
5/12/19 1 2
5/12/19 5 9
5/13/19 11 14
Я хочу сгруппировать по столбцу дня и хочу, чтобы новый df вычислял для col a и col b количество значений <10 / все значения для этого дня и столбца (a или b) как %. Так как есть множество строк на каждый день. </p>
Я пытаюсь что-то вроде
def calc_(group_df):
result = dict()
result["x"] = group_df[(group_df.x) < 10] / len(group_df.x)
result["y"] = group_df[(group_df.y) < 10] / len(group_df.y)
return pd.Series(result, index=["x", "y"])
, а затем
df.groupby("day").apply(calc)
но я получаю ошибку
Ошибка типа: не удалось обработать 163143 со значениями блока, неподдерживаемыми типами операндов для /: 'str' и 'int'
Я что-то упустил?
Я хочу, чтобы мой окончательный вывод
day a b
5/11/19 .3 .1
5/12/19 .5 .9
5/13/19 .1 .4
Я хочу, чтобы оно было сгруппировано по рабочему дню и хочу, чтобы каждый рабочий день отображался только один раз в моем конечном результате.