gpt4 book ai didi

dataframe - 使用 Julia,我如何读取多个 CSV 并合并列

转载 作者:行者123 更新时间:2023-12-05 06:05:15 25 4
gpt4 key购买 nike

我是 Julia 的新手,我认为自己是一般编程的初学者。我编写了一些 MATLAB 和 Python 代码。

我有一堆CSV,我想把它们结合起来做数据分析。我的数据如下所示:

using DataFrames
using Plots
using CSV
using Glob
using Pipe

file_list = glob("*.csv") #list of all csvs in dir
df = @pipe file_list[1] |> CSV.File(_,header = 2) |> DataFrame #Read file
# I could have use df = CSV.File(file_list[1], header = 2) |> DataFrame but
# I wanted to try piping multiple operation but it didn't work

[Results of the code snippet][1]

这导致:/image/nZTFy.png

事情是

  1. 我想合并前 5 列,因为它们将时间定义为 yyyy-mm-dd-hh-mm-ss
  2. 理想情况下,我会添加一个包含文件名的列,这样所有内容都会合并到一个数据框中。

正如我所说,我对 Julia 和一般编程还很陌生。感谢您的帮助。

谢谢。

最佳答案

要通过管道传递列表中的每个项目,请使用 。|>

julia> [1,2,3] .|> sqrt
3-element Array{Float64,1}:
1.0
1.4142135623730951
1.7320508075688772

你可以这样添加列:

julia> using DataFrames, Dates

julia> df = DataFrame("yr"=>2000, "m"=>1:2, "d"=>[30,1], "h"=>12:13, "min"=>30:31, "sec"=>58:59)
2×6 DataFrame
Row │ yr m d h min sec
│ Int64 Int64 Int64 Int64 Int64 Int64
─────┼──────────────────────────────────────────
1 │ 2000 1 30 12 30 58
2 │ 2000 2 1 13 31 59

julia> df[!,"datetime"] = DateTime.(df[!,"yr"], df[!,"m"], df[!,"d"], df[!,"h"], df[!,"min"], df[!,"sec"])
2-element Array{DateTime,1}:
2000-01-30T12:30:58
2000-02-01T13:31:59

julia> df[!,"file"] .= "file.csv"
2-element Array{String,1}:
"file.csv"
"file.csv"

julia> df
2×8 DataFrame
Row │ yr m d h min sec datetime file
│ Int64 Int64 Int64 Int64 Int64 Int64 DateTime String
─────┼─────────────────────────────────────────────────────────────────────────
1 │ 2000 1 30 12 30 58 2000-01-30T12:30:58 file.csv
2 │ 2000 2 1 13 31 59 2000-02-01T13:31:59 file.csv

关于dataframe - 使用 Julia,我如何读取多个 CSV 并合并列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66064894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com