Библиотека для простого управления двумерными данными
Проект направлен на развитие навыков работы с алгоритмами, структурами данных, оптимизациями и архитектурой. Также цель состоит в создании полезных инструментов. Кроме того, это возможность найти друзей (шепчет).
Существует несколько способов интеграции cDataFrame в ваши проекты.
Полностью cRainbow состоит всего из двух файлов, вы можете просто добавить cDataFrame.h
и cDataFrame.c
в свой проект и начать использовать его.
Вы можете добавить cDataFrame в свои исходные коды следующим образом:
#include "cDataFrame.h"
Для максимальной совместимости с различными платформами и компиляторами, cDataFrame написан согласно стандарту ANSI C (C89).### Структуры данных
cell
— структура данных, которая может содержать [int, float, string] и другие типы
columns
— структура колонок, состоящая из таблицы cells и связного списка колонок
dataframe
— структура DataFrame, содержащая несколько структур колонок
/* Структура cell: */
typedef struct _cell /* Одна ячейка */
{
element data;
type type;
}cell;
Структура element
/* Структура element: */
typedef union _element /* Тип данных для cell */
{
char char_ch[200]; // Не более 199 байтов
size_t integer_num;
double float_num;
char nan[4];
}element;
Структура columns
/* Структура columns: */
typedef struct _columns /* Эта структура доступна только через голову связанного списка */
{
size_t index;
char name[COL_NAME_LENGTH_MAX]; // Название колонки
struct _columns* next_col;
series series;
}column;
Структура series
/* Структура series: */
typedef struct _series /* Таблица cell */
{
cell* cell_table;
size_t size;
size_t top;
}series;
Структура dataframe
/* Структура dataframe: */
typedef struct _dataframe /* Таблица данных */
{
size_t length;
size_t width; // Размер информации
column* col; // Голова связанного списка колонок
}dataframe;
read_csv(const char* path)
Этот метод возвращает объект типа dataframe
, который содержит данные, прочитанные из CSV файла.
to_csv(dataframe* df, const char* path)
Этот метод позволяет сохранять объект типа dataframe
в CSV файл.
dfprint(dataframe* df)
Этот метод выводит данные из df
в консоль в удобочитаемом виде.cellfind(dataframe* df, size_t col, size_t index)
Этот метод возвращает указатель на cell
в позиции [col, index]
внутри df
. Однако прямое изменение этого cell
не рекомендуется.
Данное программное обеспечение ("Программа") предоставляется бесплатно любому лицу, получившему копию этого программного обеспечения и связанных с ним документов. Можно использовать Программу без каких-либо ограничений, включая использование, копирование, модификацию, объединение, публикацию, распространение, предоставление sublicense и/или продажу копий Программы, а также возможность предоставления другим лицам права использования Программы при условии соблюдения следующих условий:
Вышеуказанные уведомления об авторском праве и данное уведомление о лицензии должны присутствовать во всех копиях или существенных частях Программы.
Программа предоставляется «как есть», без какой бы то ни была гарантии, явной или подразумеваемой, в том числе, но не ограничиваясь, гарантиями товарности, пригодности для конкретных целей и отсутствием нарушений. В случае возникновения какого-либо требования, ущерба или другой ответственности, связанной с действиями контракта, деликтом или иным образом, вытекающей из Программы или её использования, авторы и владельцы авторского права не будут нести никакой ответственности.
Если вы столкнулись с проблемами при использовании cDataFrame
, вы можете найти решения здесь или в разделе issue.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )