У меня есть файл .xlsx с цифрами в один столбец. Я хочу, чтобы он преобразовался в список в python. Проблема в том, что когда я запускаю код, вывод:
[[123], [234], [345], ...]
но хочу, чтобы это было
["123", "234", "345", ...]
Как я могу «удалить» дополнительные «[]»?
import pandas as pd
excel_file = pd.read_excel(r'C:\xxx\xxx\xxx\file.xlsx')
excel_list = excel_file.values.tolist()
print(excel_list)
Вы можете развернуть списки из 1 элемента с помощью понимания списка, которое обращается к нулевому члену списка:
excel_list = [[123], [234], [345]] # stand-in for your current reading code
excel_list = [item[0] for item in excel_list] # unwrap the lists
Однако лучше просто сказать Pandas, что первая строка является заголовком (если это так):
import pandas as pd
excel_file = pd.read_excel(r'so71568988.xlsx', header=1)
print(excel_file)
excel_list = excel_file["values"].tolist()
print(excel_list)
выходы
values
0 123
1 456
2 790
3 35932
[123, 456, 790, 35932]
без дополнительной распаковки.
Вы также можете сгладить массив перед преобразованием в список.
import pandas as pd
excel_file = pd.read_excel(r'C:\xxx\xxx\xxx\file.xlsx')
excel_list = excel_file.values.flatten().tolist()
print(excel_list)
Вы можете использовать .flatten()
в DataFrame, преобразованном в массив NumPy:
df.to_numpy().flatten()
Пожалуйста, обратитесь к оригинальный поток здесь - python pandas сглаживает фрейм данных в список
Ссылка на документы - https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.ndarray.flatten.html