小编Vas*_*ira的帖子

Python:pandas合并多个数据帧

我有不同的数据帧,需要根据日期列将它们合并在一起.如果我只有两个数据帧,我可以使用df1.merge(df2, on='date')它来做三个数据帧df1.merge(df2.merge(df3, on='date'), on='date'),但是,使用多个数据帧,它变得非常复杂和难以理解.

所有数据帧都有一个共同的列 - date但它们没有相同数量的行或列,我只需要每个日期对每个数据帧都是通用的那些行.

所以,我正在尝试编写一个递归函数,它返回一个包含所有数据的数据帧,但它不起作用.那么我应该如何合并多个数据帧呢?

我试图diferent的方式,得到了类似的错误out of range,keyerror 0/1/2/3can not merge DataFrame with instance of type <class 'NoneType'>.

这是我写的脚本:

dfs = [df1, df2, df3] # list of dataframes

def mergefiles(dfs, countfiles, i=0):
    if i == (countfiles - 2): # it gets to the second to last and merges it with the last
        return

    dfm = dfs[i].merge(mergefiles(dfs[i+1], countfiles, i=i+1), on='date')
    return dfm

print(mergefiles(dfs, len(dfs)))
Run Code Online (Sandbox Code Playgroud)

一个例子:df_1:

May 19, …
Run Code Online (Sandbox Code Playgroud)

python merge data-analysis dataframe pandas

39
推荐指数
8
解决办法
5万
查看次数

Clojure Luminus Migrations - 每个迁移文件只有一张表

我正在使用 Clojure 和 Luminus 创建一个 Web 应用程序,但是当我创建一个包含我需要的所有表的迁移文件时,它只会创建第一个。这是我的user-table.up.sql文件:

CREATE TABLE UserTable (
   id INTEGER PRIMARY KEY AUTOINCREMENT,
   first_name VARCHAR(50),
   last_name VARCHAR(50),
   gender VARCHAR(50),
   email VARCHAR(50) UNIQUE,
   password VARCHAR(400),
   time_stamp TIMESTAMP,
   is_active BOOLEAN
);

CREATE TABLE LoginTable (
   id INTEGER PRIMARY KEY AUTOINCREMENT,
   user_id INTEGER,
   time_stamp TIMESTAMP
);
Run Code Online (Sandbox Code Playgroud)

当我运行时lein run migrate,只UserTable创建表。这应该像这样工作吗?我需要为每个表创建一个迁移文件吗?

clojure luminus

4
推荐指数
1
解决办法
309
查看次数

在Clojure中获取每个向量的均值的功能方法是什么?

我是函数式编程和Clojure编程语言的初学者,而且我recur几乎都在使用它.我在csv中有一个数据集,作为地图导入.我已经提取了我需要用作矢量的信息.每列都是一个向量[1 5 10 8 3 2 1 ...],我想计算每列的平均值.我写了以下函数:

(defn mean
  "Calculate the mean for each column"
  ([columns]
   (mean columns []))
  ([columns
    means]
   (if (empty? columns)
     means
     (recur (rest columns)
            (conj means (float (/ (reduce + (first columns)) (count (first columns)))))))))

;; Calcule the mean for the following vectors
(mean [[1 2 3] [1 2 3] [1 2 3]])
; => [2.0 2.0 2.0]
Run Code Online (Sandbox Code Playgroud)

这是解决这个问题的功能性方法吗?

functional-programming clojure

0
推荐指数
1
解决办法
120
查看次数