Python: добавление столбцов в фрейм данных с использованием вычисленных значений из определенных строк - PullRequest
0 голосов
/ 06 июня 2018

Привет, я довольно новичок в python и хотел бы начать работать над ним и отойти от Excel.Моя проблема в два раза:

Первая часть заключается в том, что у меня есть CSV-файл, который выглядит следующим образом

   row 1: 52.78 52.52   53.2  51.98  53.22  50.85   51.44   52.38   52.21   52.09   51.5    51.92
   row2 : 6.89  5.47    5.8    5.89   6.56   5.69   5.48     4.9     6.39    5.12   3.61     4.48
   row3:  156   126    185     363     197    261    417     298      292    150    102     303
   row4:  0     0      0       0       0       0      0       0        0      0      0       0     
   row5:  0     3      5       8       0       0      10       0        12      0      13       0
    ...
    ...
    ...
  row195: 0     5      5      7       1       2      11       0        12      0      13       0

, он продолжается до строки 195

Я хочусоздать новые столбцы, которые начинаются со строки 4 и использовать следующую формулу:

первый столбец должен быть

    [(row3,column1)*(row4,column1)]+[(row3,column1)*(row101,column1)]

второй столбец должен быть

    [(row3,column2)*(row4,column2)]+[(row3,column2)*(row101,column2)]

itпродолжается до строки 100 для всех 12 столбцов

формула в строке 100 для первого столбца должна быть

   [(row3,column1)*(row98,column1)]+[(row3,column1)*(row195,column1)]

как мне поступить в Пандах?

Вторая часть моей проблемы заключается в том, что у меня 365 разных файлов с похожими данными (значения меняются для каждого файла, но формат одинаков), и я хотел бы применить эту же формулу ко всем файлам.

Ценю любую помощь, которую я могу получить

Спасибо

1 Ответ

0 голосов
/ 06 июня 2018

Вы пытаетесь использовать панд, например, Excel, если я правильно понимаю.

Если ваш набор данных / фрейм данных называется df, и вы хотите добавить новый столбец.Вы могли бы исправить что-то вроде:

df['first_col']=float(df.iloc[2,0])*float(df.iloc[3,0])+float(df.iloc[2,0])*float(df.ilo[100,0])

... и то же самое для других 2 столбцов.Имейте в виду, что python начинает считать с 0. Следовательно, ваша строка 1 на самом деле является строкой 0, а столбец 1 - столбцом 0 и т. Д. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...