Переменная фрейма данных python pandas не обновляется

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

  1. Имя файла, включающее час, в который были записаны данные. Я могу предположить, что первая точка данных была собрана в начале часа, и я могу это проанализировать.
  2. Я знаю, что каждая точка данных была собрана с частотой 64 Гц, поэтому я знаю разницу во времени между каждой точкой данных.

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

#Paths for files to process
advpath = '/Users/stnixon/Dropbox/GradSchool/Research/EddyCovarianceData/data/palmyra2016/**'

#Create list of files to process
advfiles = glob.glob(os.path.join(advpath,'*.A16'))

#create data frames, load files, concatenate, and sort adv files and dfetfiles
advframe = []

for f in advfiles:
    advdf = pd.read_csv(f, sep='\s+', names=['ID','u','v','w','u1','v1','w1','ucorr','vcorr','wcorr'], usecols=[0,1,2,3,7,8,9])
    file_now = os.path.basename(f)
    print(int(file_now[4:6]))
    advdf['Time'] = pd.to_datetime(int(file_now[4:6]),unit='h')
    advdf['Date'] = pd.to_datetime('2016'+file_now[0:2]+file_now[2:4])
    advframe.append(advdf)
advdata = pd.concat(advframe)

По сути, столбец Date дает мне правильную дату в каждой строке, а столбец Time просто дает мне одно и то же значение для всех.

можете ли вы предоставить образец данных, если это возможно?

CodeHunter 09.08.2018 23:01

Абсолютно! Для файла с именем 06281200.A16 каждая строка выглядит так: 1604-234-223 682 78 83 82 92 91 90. Первое число - это бесполезный идентификатор, следующие три - скорость в направлениях x, y и z, следующие 3 - значение коррекции для каждого измерения, а последние три - корреляция для каждого измерения.

Steve 10.08.2018 00:02

Что произойдет, если вы вставите advdf['Time'] = advdf.Time.dt.hour сразу после advdf['Time'] = pd.to_datetime(int(file_now[4:6]),unit='h')? Показывает ли он те же значения?

gyoza 10.08.2018 04:17

Те же ценности. Проблема не столько в форматировании, сколько в том, чтобы значения действительно обновлялись ...

Steve 10.08.2018 18:01
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
96
1

Ответы 1

Оказывается, это не ошибка, а странное совпадение. Файлы, которые мне нужно было обработать, правильно анализировали час, но они обрабатывались в случайном порядке, и так получилось, что часы для первых двух и последних двух файлов были одинаковыми. Так что в терминале это выглядело так, как будто он не обновлялся.

Другие вопросы по теме