Если у вас есть:
a = pd.DataFrame([('Pretty', 'O'), ('bad', 'O'), ('storm','O'), ('here', 'O'), ('last', 'O'), ('evening', 'O'), ('.', 'B-geo')])
, то для получения: [('Pretty', 'O'), ('bad', 'O'), ('storm','O'), ('here', 'O'), ('last', 'O'), ('evening', 'O'), ('.', 'B-geo')]
Вы можете сделать:
[tuple(u) for u in a.values.tolist()]
Тогда вы можете сделать это для каждоговашего фрейма данных и объедините весь список кортежей
Если у вас есть все ваши предложения в одном фрейме данных, например:
a = pd.DataFrame([
('Pretty', 'O'),
('bad', 'O'),
('storm','O'),
('here', 'O'),
('last', 'O'),
('evening', 'O'),
('.', 'B-geo'),
(' ',''),
('The', 'O'),
('World', 'O'),
('is', 'O'),
('...','N-geo')
])
, вы можете найти индекс "", то есть значение пробела и разделитьваш набор данных вот так:
index_list = a.index[a[0] == " "].tolist()
df1 = a.iloc[:index_list[0], :]
df2 = a.iloc[index_list[0]:, :]
Итак, наконец, у вас будет что-то вроде этого:
def dataset_to_list_of_tuple(df):
final_list = []
index_list = df.index[df[0] == " "].tolist()
for i in range(len(index_list)):
if i == 0:
df_part = df.iloc[:index_list[0], :]
else:
df_part = df.iloc[index_list[i-1]:index_list[i], :]
sentence = [tuple(u) for u in df_part.values.tolist()]
final_list.append(sentence)
return final_list