Создание нового столбца путем суммирования предыдущих с ошибкой pandas

#python #pandas

#python #pandas

Вопрос:

Вот изображение моего файла, верхний — оригинал, нижний — то, что я получаю после запуска своего кода: https://imgur.com/a/zUCGart

Вот мой код:

 import pandas as pd

path = r'C:UsersmynameDownloadsRGB.xlsx'
df = pd.read_excel(path)
df['RGB'] = df.iloc[1:7:,:5:8].sum(axis=1)
df.to_excel(path)
 

По сути, я хочу создать новый столбец с именем RGB и суммировать значения красного, синего и зеленого столбцов, поэтому я сделал 1:7:,:5:8, чтобы применить его ко всем строкам, а также к строкам 5, 6 и 7.(красные, синие, зеленые) столбцы, но вместо этого он просто сделал RGB равным черному (первому) столбцу…

Не уверен, что я здесь сделал не так.

Мой исходный фрейм данных:

   Black  Orange  Yellow  Brown  Blue   Green  Red
      7       4       3      1      6      7    2
      3       3       3      8      4      5    2
      6       7       3      2      2      2    5
      2       9       2      2      2      2    2
      5       5       5      5      5      5    5
      2       2       8      2     27      8    2
 

Ответ №1:

У вас есть несколько дополнительных точек с запятой в вашем коде, at df.iloc[1:7:,:5:8] . Попробуйте без них. дайте мне знать, если это сработает, в противном случае я вернусь с более общим решением.

 import pandas as pd

path = r'C:UsersmynameDownloadsRGB.xlsx'
df = pd.read_excel(path)
df['RGB'] = df.iloc[1:7,5:8].sum(axis=1)
df.to_excel(path)
 

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

1. Это решило проблему, большое спасибо! Я думал, что синтаксис для df.iloc [:,:] мой плохой

2. Это так, но только с одной точкой с запятой. Не забудьте поддержать / принять подтверждающие ответы. Приветствия!

Ответ №2:

Вы должны быть в состоянии сделать это следующим образом.

 df['RGB'] = df['Red']   df['Green']   df['Blue']
 

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

1. Спасибо! Мне нужно будет сделать это для разных частей кода