Копирование из нескольких текстовых файлов, транспонирование строк 0 и строк 1 и вставка в один файл CSV

#python #python-3.x #dataframe #transpose

#python #python-3.x #фрейм данных #транспонирование

Вопрос:

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

 ### master mapping table
import glob
path = r'C:/Users/ryans/OneDrive/Desktop/all_files/'

all_files = glob.glob(path   '*.txt')

df = pd.DataFrame()

for filename in all_files:
    print(filename)
    df = pd.read_csv(filename, sep = 't', index_col=None, header=0)
    df_top = df.head(1)
    df_trans = df_top.T
    df.append([filename, df_trans])
    
df_files = pd.concat(df, axis=0, ignore_index=True)
df_files.to_csv('C:/Users/ryans/OneDrive/Desktop/master_mapping.csv')
 

Вот ошибка, которую я вижу:

 Traceback (most recent call last):

  File "<ipython-input-98-13055a9e7ad2>", line 15, in <module>
    df_files = pd.concat(df, axis=0, ignore_index=True)

  File "C:UsersryansAnaconda3libsite-packagespandascorereshapeconcat.py", line 284, in concat
    sort=sort,

  File "C:UsersryansAnaconda3libsite-packagespandascorereshapeconcat.py", line 310, in __init__
    "first argument must be an iterable of pandas "

TypeError: first argument must be an iterable of pandas objects, you passed an object of type "DataFrame"
 

В окончательной версии CSV-файла я хотел бы видеть имя файла в ColumnA, транспонированную строку 0 в ColumnB и транспонированную строку 1 в ColumnC. Может кто-нибудь указать на мою ошибку, чтобы я мог заставить это работать правильно? Большое спасибо!!

ПРИМЕЧАНИЕ: я перебираю 3500 текстовых файлов. Возможно, мне придется делать это по частям … не уверен…

Комментарии:

1. Похоже, вы включаете не все свои импортные файлы. Откуда pd берется импорт? Из pandas?

2. Я почти уверен, что проблема возникает отсюда: df_top = [filename,df_top] Я пытаюсь присоединить имя файла к транспонированной версии первых 2 строк в текстовом файле. Если я просто транспонирую первые 2 строки, кажется, все работает нормально. Когда я пытаюсь добавить имя файла перед переносом двух строк, ничего не работает.