Создание нескольких CSV-файлов из существующих CSV-файлов Python PANDAS - PullRequest
0 голосов
/ 20 октября 2018

Я пытаюсь взять большой CSV-файл и написать CSV-файл для сортировки двух столбцов.Мне удалось получить два отдельных уникальных значения из файла, чтобы иметь возможность узнать, какие CSV-файлы необходимо создать.
Ex Data:

1,224939.203,1243008.651,1326.774,F,C-GRAD-FILL,09/22/18 07:24:34,
1,225994.242,1243021.426,1301.772,BS,C-GRAD-FILL,09/24/18 08:24:18,
451,225530.332,1243016.186,1316.173,GRD,C-TOE,10/02/18 11:49:13,
452,225522.429,1242996.017,1319.168,GRD,C-TOE KEY,10/02/18 11:49:46,

Я хотел бы создать CSV-файл "C-GRAD-FILL 09-22-18.csv "со всеми данными, которые соответствуют двум значениям.Я не могу решить, как перебрать данные для обоих значений.

def readData(fileName):
    df = pd.read_csv(fileName,index_col=False, names+['Number','Northing','Easting','Elevation','Description','Layer','Date'],parse_dates=['Date'] )
    ##Layers here!!!
    layers = df['Layer'].unique()
    ##Dates here!!! AS DATETIME OBJECTS!!!!
    dates = df['Date'].map(lambda t: t.date()).unique()
    ##Sorted in order
    sortedList = df.sort_values(by=['Layer','Date'])

1 Ответ

0 голосов
/ 20 октября 2018

Вы можете использовать GroupBy объект.Сначала убедитесь, что ваша дата имеет правильный формат строки:

df['Date'] = pd.to_datetime(df['Date']).dt.strftime('%m-%d-%y')

Чтобы вывести все файлы, выполните итерацию объекта GroupBy:

for (layer, date), group in df.groupby(['Layer', 'Date']):
    group.to_csv(f'{layer} {date}.csv', index=False)

Или для одной конкретной комбинации:

layer = 'C-GRAD-FILL'
date = '09-22-18'
g = df.groupby(['Layer', 'Date'])

g.get_group((layer, date)).to_csv(f'{layer} {date}.csv', index=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...