Как записать один конкретный столбец, присутствующий в нескольких фреймах данных, в список с использованием Python? - PullRequest
1 голос
/ 20 мая 2019

У меня есть 4 CSV-файла в папке, и я загружаю их по отдельности в виде dataframes в Python как dataframes. Я обрабатываю каждый из этих фреймов данных, чтобы получить одно уникальное «имя файла» в виде списка и записать его в новый CSV-файл.

Теперь я хочу записать все имена файлов всех фреймов данных в выходной файл.

file_list=[]
for fileno in data.groupby(['date','age'])['File_No']:
    file_list.append(fileno)
with open(r'D:\Data\core_data\file1.csv', "w") as csvFile:
    writer = csv.writer(csvFile)
    writer.writerows(file_list)

здесь данные - это один кадр данных. Это дает мне список имен файлов, представленных в этом кадре данных, следующим образом:

[((Timestamp('2018-01-15 00:00:00'), '1', 1), 0      1011
  1      1012
  2      1013
  3      1014...]

Итак, мне нужны две вещи:

  1. Я не хочу '((Timestamp('2018-01-15 00:00:00'), '1', 1) 'в выводе списка.

  2. Списки всех фреймов данных должны быть записаны в один список списков как:

[[список имен файлов file_1], [список имен файлов file_2], [список file_3 имена файлов]]

1 Ответ

0 голосов
/ 20 мая 2019

Вы намереваетесь получить список списка имен файлов, присутствующих в ваших 4 CSV-файлах правильно?

В этом случае, почему бы вам не зациклить файлы CSV и не получить ожидаемый список следующим образом:

import pandas as pd
files = ['file1.csv', 'file2.csv', 'file3.csv', 'file4.csv']

output = []
for file in files:
    temp_df = pd.read_csv(file) 
    output.append([x for x in list(temp_df['File_No'].unique()) if type(x) == int])

#write output to csv...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...