#python #pandas
Вопрос:
Я использую этот код для добавления строк в csv в новый фрейм данных.
import pandas as pd
from keybert import KeyBERT
df_info = pd.read_csv(r'./old.csv', encoding='utf-8')
df_re = pd.DataFrame()
for index,row in df_info.iterrows():
doc = row['info']
model = KeyBERT('distilbert-base-nli-mean-tokens')
a = model.extract_keywords(doc, keyphrase_ngram_range=(1, 1))
row['result'] = a
df_re = df_re.append(row)
df_re.to_csv(r'./new.csv', index=False, mode='w', header=True, encoding='utf-8-sig')
Порядок столбцов в old.csv
D, info, B, A, C
этом .
Но когда я использую df_re = df_re.append(row)
, порядок столбцов df_re(new.csv)
становится A, B, C, D, info,result
,я не хочу изменять порядок исходных столбцов. Я просто хочу добавить столбец result
к последнему столбцу исходного столбца csv.
Мне просто нужно D, info, B, A, C,result
войти new.csv
.
Что мне делать?
Ответ №1:
При инициализации df_re
это пустой фрейм данных без строки и столбца, поэтому вам не следует ожидать какого-либо порядка. Вместо этого вы можете явно указать столбцы во время инициализации:
df_re = pd.DataFrame(columns=df_info.columns ['result'])
Комментарии:
1. Я воспользовался твоим методом, но случилось кое-что странное. Заголовок становится таким,
Dresult, inforesult, Bresult, Aresult, Cresult,A,B,C,D,info