Добавить определенные значения в фрейм данных с помощью groupby.aggPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Добавить определенные значения в фрейм данных с помощью groupby.agg

Сообщение Anonymous »

Я обрабатываю файлы, содержащие данные в непригодном для использования формате. После обработки одного из файлов у меня остался фрейм данных и единственное значение.
Фрейм данных выглядит следующим образом:
df = pd.DataFrame({
'A': ['foo', 'foo', 'foo', 'fizz', 'fizz', 'fizz', 'fizz'],
'B': ['bar', 'bar', 'bar', 'buzz', 'buzz', 'buzz', 'baz'],
'C': [10,10,10,10,10,10,10]
})

val = 20.0

Значение не должно быть частью моего фрейма данных, но его необходимо включить в расчет TOTAL. Вот как я извлекаю его из файла после того, как прочитал его в фрейм данных (он возвращает строку, поэтому я привожу его к числу с плавающей запятой):
if len(df.loc[df['ID'].eq("Settle"), 'C'].values) > 0:
temp = df.loc[df['ID'].eq("Settle"), 'C']
if temp.values[0].isnumeric():
num = float(temp.values[0])
else:
num = 0.0
else:
num = 0.0

теперь мне нужно выполнить groupby.agg() со следующим условием:
  • If A == 'foo' Мне нужно прибавить значение к сумме
Это базовый код, который я бы использовал для получения сумм для каждого значение в A, но я не могу понять, как это влияет на мое состояние. Я предполагаю, что смогу использовать np.where или лямбда, но не знаю, как использовать это с .agg() и добиться результата.
out = df.groupby(['A'], sort=False, as_index=False).agg({"C":"sum"})

Ожидаемый результат:
A C
foo 50
fizz 40


Подробнее здесь: https://stackoverflow.com/questions/790 ... roupby-agg
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»