#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 строки, кажется, все работает нормально. Когда я пытаюсь добавить имя файла перед переносом двух строк, ничего не работает.