Загрузка и форматирование файла в python

Все три синтаксиса работают очень хорошо.

Другой способ - сначала написать

path = r'C: \ user \ .......... ......... '(каков бы ни был путь для вас)

, а затем передать его в os.chdir (путь)

0
задан Nicolaj Hansen 4 March 2019 в 13:56
поделиться

3 ответа

Это должно делать то, что вы хотите достичь с помощью pandas

import pandas as pd

df = pd.read_csv('<your file>', header=None, names=['DateTime', 'Num1', 'Num2', 'Num3', 'Num4'])
df['DateTime'] = pd.to_datetime(df['DateTime'])

# Split datetime object in to seperate columns as desired output format
df['hour'] = df['DateTime'].dt.hour
df['minute'] = df['DateTime'].dt.minute
df['second'] = df['DateTime'].dt.second
df['day'] = df['DateTime'].dt.day
df['month'] = df['DateTime'].dt.month
df['year'] = df['DateTime'].dt.year

# Drop the DateTime columns
df.drop('DateTime', inplace=True, axis=1)

# Switch the order of columns to desired order
df = df[['hour', 'minute', 'second', 'day', 'month', 'year', 'Num1', 'Num2', 'Num3', 'Num4']]

#export to file with ' ' as seperator
df.to_csv('output file.txt', sep=' ', index=False, header=None)
0
ответ дан Niels Henkens 4 March 2019 в 13:56
поделиться

Как насчет:

with open('filename','r') as f:
    out = []
    a = f.read().replace(':',' ').replace(',','').split('\n')
    for i in a:
       out.append(i.split(' '))
    print(out[0:-1])

[0:-1], чтобы отбросить последний пустой элемент

0
ответ дан bmat 4 March 2019 в 13:56
поделиться

Мне всегда нравится обрабатывать файлы, используя конвейерный подход, таким образом, вы можете использовать параллелизм, если ваши входные данные становятся действительно большими. В любом случае, вы можете легко проверить производительность, используя %timeit, если вы используете ipython, но вот что я бы сделал:

processed = ""

def replace_char(line, char, replacement):
    return line.replace(char, replacement)

with open('SOME_PATH') as fh:
    processed += replace_char(replace_char(fh.read(), ":", " "), ",", "")

print(processed)

# OUTPUT
# 06 38 34 16.09.2017  739648.41186077976.8575 54.791616 12.727939
# 06 38 35 16.09.2017  739647.06286077975.6925 54.791606 12.727917

С этим подходом, если вы хотите внести изменения в способ обработки файл все, что вам нужно сделать, это изменить replace_char или написать другую функцию, если хотите. Если вам нужен параллелизм, вы можете использовать пакеты multiprocessing или asyncio.

0
ответ дан aquil.abdullah 4 March 2019 в 13:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: