Как производить математические вычисления над определенной колонкой DataFrame?
Как можно вычислить пример со следующим видом “с_с = (с – с_min)/с_max” со всеми элементами колонки с, и вывести в другой dataframe, где будут хранится данные из колонки с из прежнего df и вычисленные значения c_c?
Csv:
a,b,c,d
1,2,3,4
5,6,7,8
9,8,7,6
5,4,3,2
1,8,4,6
Скрипт:
import pandas as pd
import numpy as nm
pd = pd.read_csv("test1.csv", delimiter=',')
pd.head(len(pd.index))
c_min = pd['c'].min()
c_max = pd['c'].max()
print(c_min, c_max)
Ответы (1 шт):
pd = pd.read_csv("test1.csv", delimiter=',')
Не делайте так - не называйте разные сущности одним именем. У вас тут переменная pd перекрыла алиас pd пакета pandas и вы дальше по коду не сможете этим алиасом пользоваться. Называйте датафрейм стандартно - df.
А так то всё просто. Скопировать колонку в новый датафрейм можно с помощью copy:
df1 = df[['c']].copy()
Обратите внимание, что скобок две пары. С одной парой если сделать, то это будет Series, а не Dataframe.
Дальше просто записываете формулу как есть, но с использованием датафрейма:
df1['c_c'] = (df1['c'] - df1['c'].min())/df1['c'].max()
Ну или можете использовать ваши заранее посчитанные переменные для min и max, разницы нет.