python - 处理列中的多个值

标签 python r database

考虑 R 中 data.table 包中的示例:

DT = data.table(ID = c("b","b","b","a","a","c"), a = 1:6, b = 7:12, c=13:18)
DT = DT[, .(A=list(a), B=list(b), C=list(c)), by=ID]
DT
   ID     A     B        C
1:  b 1,2,3 7,8,9 13,14,15
2:  a   4,5 10,11    16,17
3:  c     6    12       18

在此之后,我想将其写入文件以共享此结构。但是,由于 list 类型,它禁止使用 write.csv 编写此类内容。我找到的解决方案是将这些列转换为字符串。但是,我如何从文件中读取此内容?是否有某种统一的格式可以用(几乎)任何语言轻松阅读?

最佳答案

您可以按如下方式创建制表符分隔的文件:

DT2 <- DT[, .(A=toString(a), B=toString(b), C=toString(c)), by=ID]
write.table(DT2, "dt2.txt", sep="\t", row.names = FALSE)

大多数语言都应该可以阅读。


当你想保留列表时,按照@TigerhawkT3的建议转换为JSON将是最好的选择:

DT3 <- DT[, .(A=list(a), B=list(b), C=list(c)), by=ID]
library(jsonlite)
toJSON(DT3)

给出:

[{"ID":"b","A":[1,2,3],"B":[7,8,9],"C":[13,14,15]},{"ID":"a","A":[4,5],"B":[10,11],"C":[16,17]},{"ID":"c","A":[6],"B":[12],"C":[18]}]

关于python - 处理列中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35036133/

相关文章:

python - 在 matplotlib 中绘制给定 y 范围内的垂直线

python - SocketIO + Flask 检测断线

r - 将所有列除以第二列中的值-适用于所有行

php - 用户认证 PHP/SQL

sql - 使用 T-SQL 连接来自所有父行的字符串的最有效方法是什么?

python - python 中用于铱星 SBD 的 2 字节校验和

python - "rank"的 Numpy/scipy 弃用警告

Rcpp:从 Rcpp 中的包调用 C 函数

Rscript 正在绘制为 PDF

c++ - MFC/C++有数据库事务机制吗?