0
0 комментариев

Каким образом можно провести операции в файле csv между столбцами или строками? С удовольствием почитал бы инструкцию и желательно используя простые способы. Пример что нужно сделать:

  1. Сложить из столбца Open значение первой строки со второй и записать результат в новый столбец. Затем вторая с третьей и т.п.
  2. Сложить из столбца Open значение первой строки со пятой и записать результат в новый столбец. Затем вторая с шествой и т.п.
  3. Сложить из столбца Open значение первой строки со пятой и записать результат в новый столбец. Затем первую с шествой, седьмой и т.п.
  4. Если в строке Close значение меньше чем в предыдущей строке столбца Open, то ставим в новый столбец букву А.
  5. Если в строке Close значение меньше чем в предыдущей строке столбца Open, то ставим в новый столбец значение Close этой строки прибавляя к ней значение из ячейки Open, которое находится на 2 ячейки ниже.
  6. Если в строке Close значение меньше чем в предыдущей строке и больше чем в следующей, то записываем в новый столбец значение из ячейки на 5 строк ниже, суммируя с ячейкой на 3 строки выше из столбца Close.

Примеры немножко образные, чтобы разобраться, как это работает.

import os
import glob
import pandas as pd
import pandas_datareader.data as wb
a = r'C:/Users/II/Downloads/*.csv'
files = glob.glob(a)
df = pd.read_csv(f, index_col='Date', encoding='latin1', parse_dates=['Date'])

[/apcode]

Данные

Date,Open,High,Low,Close,Volume,Adj Close
2011-04-15,15.0,15.0,15.0,15.0,300.0,10.263332
2011-04-18,14.78,14.85,14.24,14.24,1800.0,9.743323
2011-04-19,14.85,14.85,14.85,14.85,400.0,10.160698
2011-04-20,15.49,15.49,14.71,14.71,1100.0,10.064907
2011-04-21,15.14,15.56,14.81,15.01,18600.0,10.270174
2011-04-25,15.01,15.01,15.01,15.01,0.0,10.270174
2011-04-26,15.01,15.01,15.01,15.01,0.0,10.270174
2011-04-27,15.0,15.63,15.0,15.63,3300.0,10.694392
2011-04-28,15.0,15.0,15.0,15.0,500.0,10.263332
2011-04-29,15.18,15.18,14.99,14.99,1700.0,10.256489
2011-05-02,15.0,15.05,14.99,14.99,2000.0,10.256489
2011-05-03,15.05,15.05,14.99,14.99,700.0,10.256489
2011-05-04,14.76,14.76,14.2,14.2,1700.0,9.715954

[/apcode]

Пример с df = pd.DataFrame({'a':[1,2,3,4], 'b':[11,12,13,14], 'c':[21,22,23,24]})

  1. Сложить из "a" 1 и 2 и записать результат в новый столбец. Затем 2 и 3 и т.п.
  2. Сложить из столбца "a" 1 и 3 и записать результат в новый столбец. Затем 2 и 4 и т.п.
  3. Сложить из столбца "а" значение 1 и 3 и записать результат в новый столбец. Затем 1 и 4 и т.п.
  4. Если в строке "с" значение 22 меньше чем в предыдущей "а" 1, то ставим в новый столбец букву А.
  5. Если в строке "с" значение 22 меньше чем в предыдущей "а" 1, то ставим в новый столбец значение "с" 22 прибавляя к ней значение из ячейки "а", которое находится на 2 позиции ниже - цифра 4.
  6. Если в строке "с" значение 22 меньше чем в предыдущей строке и больше чем в следующей, 21>22<23, то записываем в новый столбец значение 24 (на две строки ниже), суммируя с ячейкой на одну строки выше - 21.

Добавить комментарий