Вычисление между столбцами

#python #python-3.x #pandas #dataframe

#python #python-3.x #панды #фрейм данных

Вопрос:

У меня есть фрейм данных, в котором есть 4 столбца

 data = pd.DataFrame(columns=['Math', 'Geo', 'Total', 'Difference'])
  

Может кто-нибудь, пожалуйста, скажите мне, как я могу написать эту функцию____

 data['Total'] = data['Math']   data['Geo']
data['Difference'] = data['Math'] - data['Geo']
print(data)
  

Примерно так_____

 row = {"Total": data['Math'] data['Geo'], "Difference": data['Math'] - data['Geo']}
print(data)
  

Я знаю, что это неправильный путь, потому что я получаю такую ошибку____

 Series([], dtype: object)
  

Заранее благодарю вас 🙂 🙂 🙂

Комментарии:

1. Что такое ошибка? Можете ли вы добавить некоторый образец данных?

2. Ошибка серии ([], dtype: object)

3. Итак, есть emty DataFrame и требуется его обработка? строк нет?

4. Я использую цикл for для извлечения данных из Интернета и передачи в dataframe

5. хм, поэтому, пожалуйста, добавьте примерные данные второго фрейма данных с данными. также ожидаемый результат.

Ответ №1:

Вы можете определить функцию, которая возвращает ряд, который добавляет ваши два столбца, используя apply() .

 def fcn(row):
    return pd.Series([
    row['Math'] row['Geo'], 
    row['Math']-row['Geo']
    ])
    
data[['Total','Difference']] = data.apply(fcn,axis=1)