Я пытаюсь создать программу, которая умножит строку Dataframe, если в ней будет распознан определенный элемент.Например, предположим, что у меня есть фрейм данных:
A B C D E F G
1 0 -1 2 -4 C 5
4 1 5 7 -0.2 E 7
Всякий раз, когда столбец F содержит букву, он должен умножить строку, используя следующий номер, за исключением последнего столбца: C = 2,8 E = 1,4
Таким образом, конечный вывод будет выглядеть примерно так:
A B C D E F G
2.8 0 -2.8 5.6 -11.2 C 5
5.6 1.4 7 9.8 -0.28 E 7
Вот код, который я пытаюсь использовать:
import pandas as pd
import csv
data= pd.read_csv("file.txt", sep= '\t')
U= data.drop('xyz', axis= 1)
for col in U:
U=col * 2.63
for Z in U:
Z= pd.DataFrame(U)
with open('File.tbl', 'r') as f:
P=list(f)
del P[0]
B=[]
O=[]
for o in P:
J=o.split()
B.append(J[:4])
T=(J[3:4])
O.append(J[2:3])
column=['A','B','C','D']
Y= pd.DataFrame(B, columns= column)
D= Y.drop(0)
D=D.reset_index(drop=True)
M = pd.concat([Z, D], sort=False, axis= 1) #Concatenating both the dataframes
S= pd.DataFrame(M)
x=O
while True:
x= C = 2.8
x= E = 1.4
col_Number = col + '_Number'
Z[col_Number] = (Z[col]*(x) - Z.max()) / Z.max() - Z.min() #multiply the Z-score rows
При запуске этой программы он показываетНет и только последний столбец т.е.E. Приведенная выше формула выбирает максимум и минимум из каждого столбца и выполняет расчет.Z [col] - значение строки, т.е.1, 0, -1 и т. Д., Которые должны быть умножены.
Я пытался использовать метод loc, но это не помогло.Любая помощь будет оценена.