dataframe - 在 Julia 中加入 DataFrame
问题描述
我正在使用 DataFrames.jl 的 v7.0 并且想知道这是否是一种连接两个DataFrame
s 的方法,这样两个DataFrame
s 共有的所有列都连接在一起,而两个DataFrame
s 之间不共有的列被标记为缺失。
该join()
功能似乎为DataFrame
. 如果没有完全相同的列名,该vcat
函数似乎无法连接s。DataFrame
我在下面的意思的一个例子。
我想结合
df1 = DataFrame(
A = [1, 1000, 10000, 100000],
B = [1,2,3,4],
D = ["N", "M", "I", "J"])
df2 = DataFrame(
A = [1,2],
B = repeat(1:2, inner=1),
C = ["hi","CE"])
以某种方式让我得到
df3 = DataFrame(
A = [1,1000,10000,100000, 2],
B = [1,2,3,4,2],
C = ["hi", missing, missing, missing, "CE"],
D = ["N", "M", "I", "J", missing])
我想用大的 s 来做这个,DataFrame
所以手动添加键是不可行的。
解决方案
我在 Julia v0.6.2 和 DataFrames.jl v0.11.7 中做到了这一点:
join(df1, df2, kind = :outer, on = intersect(names(df1), names(df2)))
我的输出:
5×4 DataFrames.DataFrame
│ Row │ A │ B │ D │ C │
├─────┼────────┼───┼─────────┼─────────┤
│ 1 │ 1 │ 1 │ N │ hi │
│ 2 │ 1000 │ 2 │ M │ missing │
│ 3 │ 10000 │ 3 │ I │ missing │
│ 4 │ 100000 │ 4 │ J │ missing │
│ 5 │ 2 │ 2 │ missing │ CE │
由于它同时引用 和 的列名df1
,df2
它应该免除您手动命名键的麻烦。
推荐阅读
- android - 在发送任何页面活动之前将 JS 注入 WebView
- python - Python socket.send 不工作
- php - 使用 Msqli API 连接到数据库
- yocto - 是否可以使用 android repo 工具将文件从一个存储库替换到另一个存储库?
- sql - SQLite 将特定的行列转换为附加列,并对这些列中的每一列进行内部连接
- javascript - 创建后删除克隆元素的问题
- node.js - 用户验证失败:电子邮件:电子邮件无效,需要自定义错误
- c# - 访问列表
当 T 是内部类时 - jackson - 无法反序列化 java.time.Instant
- javascript - 如何将 Chart.js 插件数据标签与 ng2-chart 一起使用?