Как я могу просмотреть только определенную часть файла CSV? - PullRequest
0 голосов
/ 10 июля 2019

Мне нужно перебрать определенные строки в моем CSV-файле, например, строки 231 в строку 252. Затем я хочу сложить значения, полученные при расчете каждой строки, и разделить их на столько строк, сколько я перебрал. , Как бы я это сделал?

Я новичок в пандах, поэтому я очень признателен за помощь в этом.

У меня есть файл CSV из Yahoo Finance, который выглядит примерно так (в нем много строк):

Date,Open,High,Low,Close,Adj Close,Volume
2019-06-06,31.500000,31.990000,30.809999,31.760000,31.760000,1257700
2019-06-07,27.440001,30.000000,25.120001,29.820000,29.820000,5235700
2019-06-10,32.160000,35.099998,31.780001,32.020000,32.020000,1961500
2019-06-11,31.379999,32.820000,28.910000,29.309999,29.309999,907900
2019-06-12,29.270000,29.950001,28.900000,29.559999,29.559999,536800

Я сделал основные шаги по импорту панд и все такое. Затем я добавил две переменные, соответствующие разным столбцам, чтобы легко ссылаться только на этот столбец.

import pandas as pd
df = pd.read_csv(file_name)

high = df.High
low = df.Low

Тогда я попытался сделать что-то подобное. Я пытался использовать .loc в переменной, но это не сработало. Возможно, это очень глупо, но я действительно новичок в пандах.

dates = df.loc[231:252, :]

for rows in dates:
        # calculations here
        # for example:
        print(high - low)
        # I would have a more complex calculation than this but 
        # but for simplicity's sake let's stick with this.

Вывод этого будет для каждой строки 1-252, которую он печатает high - low, например:

...
231    3.319997
232    3.910000
233    1.050001
234    1.850001
235    0.870001
...

Но я хочу выводить только на определенное количество строк.

Затем я хочу сложить все эти значения и разделить их на количество строк, которые я зациклил. Эта часть проста, поэтому вам не нужно включать это в свой ответ, но ничего страшного, если вы это сделаете.

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Используйте skiprows и nrows.Сохраняйте заголовки согласно Python read_csv, пропускайте строки, но сохраняйте заголовок , передавая диапазон к skiprows, который начинается с 1.

In [9]: pd.read_csv("t.csv",skiprows=range(1,3),nrows=2)
Out[9]:
         Date       Open       High        Low      Close  Adj Close   Volume
0  2019-06-10  32.160000  35.099998  31.780001  32.020000  32.020000  1961500
1  2019-06-11  31.379999  32.820000  28.910000  29.309999  29.309999   907900
0 голосов
/ 10 июля 2019

.loc ломтики по этикетке. Для целочисленной нарезки используйте .iloc

dates = df.iloc[231:252]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...