Чтобы преобразовать DataFrame Pandas в словарь без включения индекса в Python, мы можем использовать функцию to_dict() с orient=’records’ для прямого преобразования, использовать понимание словаря для более настраиваемых преобразований или использовать функцию apply() с лямбда для преобразования каждой строки по отдельности.
- С использованием функции to_dict()
- Используя словарное понимание
- С использованием функции apply()
- Заключение
С использованием функции to_dict()
Этот метод использует функцию to_dict() DataFrame Pandas, указывая orient=’records’.
Это преобразует кадр данных Pandas в список словарей без индекса в Python, где каждый словарь соответствует строке в DataFrame, исключая индекс.
import pandas as pd df = pd.DataFrame({ 'City': ['New York', 'Los Angeles', 'Chicago'], 'Population': [8419000, 3971000, 2705000] }) dict_without_index = df.to_dict(orient='records') print(dict_without_index) print(type(dict_without_index))
Выход:
[{'City': 'New York', 'Population': 8419000}, {'City': 'Los Angeles', 'Population': 3971000}, {'City': 'Chicago', 'Population': 2705000}]
После выполнения кода в Pycharm ниже показан снимок экрана.
Используя словарное понимание
Понимание словаря включает перебор строк DataFrame и создание словаря для каждой строки вручную.
Этот метод обеспечивает больший контроль над преобразованием кадра данных Pandas в словарь без индекса в Python, позволяя использовать собственную логику или манипулировать данными в цикле понимания.
import pandas as pd df = pd.DataFrame({ 'City': ['Seattle', 'Miami', 'Austin'], 'State': ['Washington', 'Florida', 'Texas'] }) dict_without_index = [{col: df[col][i] for col in df.columns} for i in range(len(df))] print(dict_without_index) print(type(dict_without_index))
Выход:
[{'City': 'Seattle', 'State': 'Washington'}, {'City': 'Miami', 'State': 'Florida'}, {'City': 'Austin', 'State': 'Texas'}]
После выполнения кода в редакторе Pycharm на следующем снимке экрана показаны выходные данные.
С использованием функции apply()
В этом подходе используется функция apply() Pandas, которая применяет указанную лямбда-функцию к каждой строке. Лямбда-функция преобразует каждую строку в словарь, в результате чего получается серия словарей. Этот метод полезен для применения дополнительных преобразований или вычислений к данным во время преобразования кадра данных Pandas в словарь без индекса в Python.
import pandas as pd df = pd.DataFrame({ 'City': ['Boston', 'San Francisco', 'Denver'], 'Area Code': [617, 415, 303] }) dict_without_index = df.apply(lambda row: row.to_dict(), axis=1).tolist() print(dict_without_index) print(type(dict_without_index))
Выход:
[{'City': 'Boston', 'Area Code': 617}, {'City': 'San Francisco', 'Area Code': 415}, {'City': 'Denver', 'Area Code': 303}]
На приведенном ниже снимке экрана показаны результаты после выполнения кода в редакторе Pycharm.
Заключение
Здесь я объяснил три эффективных метода преобразования DataFrame Pandas в словарь без индекса в Python: использование функции to_dict() с orient=’records’, использование понимания словаря для большего контроля и применение функции apply() для построчное преобразование. Каждый метод предлагает свой подход к эффективному преобразованию данных DataFrame в словарный формат, отвечающий различным потребностям обработки данных.