#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. Спасибо! Мне нужно будет сделать это для разных частей кода