ios 在Swift上存储表格数据

beq87vna  于 2023-03-09  发布在  iOS
关注(0)|答案(4)|浏览(133)

我应该使用什么样的数据结构来允许我存储表格数据(并向其添加新数据),以及对其进行操作(计算聚合等)。
具体来说,我正在寻找类似于pandas(python)的东西,现在我不需要画数据表但是,只需要存储数据。
例如,假设我想每5秒向一个表中添加一个值,这样,每隔一个小时,我就会将信息聚合到一个新的数据结构中。

lvjbypge

lvjbypge1#

也许这个能帮到你

struct Table<T>{
    typealias Columns = [T]
    typealias Rows = [Columns]
    private var data: Rows = []

    mutating func appendRow(row: Columns){
        data.append(row)
    }

    func getRow(index: Int) -> Columns?{
        return data[safe: index]
    }
}

var intTable = Table<Int>()
intTable.appendRow(row: [1,2,3,4])
intTable.appendRow(row: [1,2,3])

var anyTable = Table<Any>()
anyTable.appendRow(row: ["Hello World", 12])
ozxc1zmp

ozxc1zmp2#

苹果为此开发了一个叫做TabularData的框架。
它允许您从JSON和CSV文件导入和导出数据,以及通过简单的统计数据(如元素计数、最大值、最小值、meanstandard deviation)编程存储、排序和汇总表格数据。
请注意,它仅适用于iOS 15.0+、macOS 12.0+、tvOS 15.0+或watchOS 8.0+

rwqw0loc

rwqw0loc3#

您可以使用SwiftyTextTable:https://github.com/scottrhoyt/SwiftyTextTable .
它很棒,也很容易使用。假设你可以像这样在一个表中存储数据。

/*
+-----+-----+-----+
| foo | bar | baz |
+-----+-----+-----+
| 1   | 2   | 3   |
| 11  | 22  | 33  |
+-----+-----+-----+
*/

存储此数据的快捷代码为

// create columns

let column1 = TextTableColumn(header: "foo")
let column2 = TextTableColumn(header: "bar")
let column3 = TextTableColumn(header: "baz")

// Then create a table with the columns

var table = TextTable(columns: [column1, column2, column3])

// Then add some rows

table.addRow([1, 2, 3])
table.addRow([11, 22, 33])
jm81lzqq

jm81lzqq4#

您还可以使用此库:https://github.com/AramKoorn/swifty
要以表格形式存储数据,您可以轻松地创建DataFrame,如

var df1 = DataFrame(data: [[1, 2], ["a", "b"]], columns: ["col1", "col2"])

如果你想添加数据,你可以使用concat()函数。

var df2 = DataFrame(data: [[3, 4], ["c", "d"]], columns: ["col1", "col2"])
  df1.concat(data: [df2], axis: "rows")

输出将为:

<style type="text/css">
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;
  overflow:hidden;padding:10px 5px;word-break:normal;}
.tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;
  font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;}
.tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top}
</style>
<table class="tg">
<thead>
  <tr>
    <th class="tg-0pky">col1</th>
    <th class="tg-0pky">col2</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td class="tg-0pky">1</td>
    <td class="tg-0pky">a</td>
  </tr>
  <tr>
    <td class="tg-0pky">2</td>
    <td class="tg-0pky">b</td>
  </tr>
  <tr>
    <td class="tg-0pky">3</td>
    <td class="tg-0pky">c</td>
  </tr>
  <tr>
    <td class="tg-0pky">4</td>
    <td class="tg-0pky">d</td>
  </tr>
</tbody>
</table>

相关问题