连接3个或更多CSV,它们都包含相同的第一列

zzlelutf  于 2023-10-13  发布在  其他
关注(0)|答案(2)|浏览(93)

我期待加入3(或更多)CSV的到1 CSV。每个CSV在第一列中包含相同的数据。它在第一列中总是相同的。例如,列1,行1将在所有3个+ csv中相同,列1,行2将在所有3个csv中相同....等等。
样本数据
csv_1:

date, a
1,b
2,c
3,d

csv_2:

date,t
1,h
2,j
3,k

csv_3:

date, q
1,w
2,e
3,r

输出CSV:

date,a,t,q
1,b,h,w
2,c,j,e
3,d,k,r

我希望能和米勒一起实现这一目标。它可以很好地将2个csv与这个命令结合起来:
mlr --csv join -u -j Date -f csv_1 csv_2 > output.csv
如果我添加另一个CSV,就像这样:mlr --csv join -u -j Date -f csv_1 csv_2 csv_3 > output.csv它将在文件末尾添加2列。
这可以用米勒来实现吗?
我在谷歌上搜索了这个问题,找不到解决办法。尝试了上面的连接,但它只适用于2个文件。

rn0zuynd

rn0zuynd1#

添加then

mlr --csv join -j date -f 01.csv then join -j date -f 02.csv 03.csv

和你得到
| 日期|不|一|Q|
| --|--|--|--|
| 1 |H| B| W|
| 2 |J| C| e|
| 3 |K| D| R|

xuo3flqw

xuo3flqw2#

如果所有CSV文件都有相同的顺序,并且您希望在每个CSV上组合合并列1,2,并删除列1的重复项,则可以在Unix shell中运行:

paste -d ',' *.csv | mlr --csv label ref_date then cut -x -r -f "^date"

| 参考日期|一|不|Q|
| --|--|--|--|
| 1 |B| H| W|
| 2 |C| J| e|
| 3 |D| K| R|

相关问题