当前位置: 首页 > 知识库问答 >
问题:

Clojure-如何对每一列应用不同的函数?

商品
2023-03-14

我是新来的Clojure和玩它的乐趣。

我正在阅读一个CSV文件,并希望对每一列应用一个不同的函数。什么是一个优雅的(既简洁又可读)方法来做到这一点?我探讨了两种方法:

    null

对于每一行...

(def row-1 ["John", "24"])

...我想对每个元素应用一个不同的函数,得到这样的结果:

["John", 24]

我要使用的函数是:

(def converters-1 [identity, read-string])
    null

使用此方法,我首先将每一行转换为一个映射:

(def row-2 {:name "John", :age "24"})

编辑:并且我想获取此地图:

{:name "John", :age 24}

转换器也存储在映射中:

(def converters-2 {:name identity, :age read-string})

最后我会把数据放入一张地图。我只是不确定是要在得到这张地图之前还是之后进行转换。

共有1个答案

郝原
2023-03-14

对序列使用map;对映射使用merge-with

user=> (map #(% %2) converters-1 row-1)
("John" 24)
user=> (merge-with #(% %2) converters-2 row-2)
{:name "John", :age 24}
 类似资料:
  • 我有一个函数,使API调用服务器和更新用户界面与新数据。我想使,使每30秒我使API调用不同的url每次?这些API调用应该是不间断的,只要应用程序正在运行。

  • 假设我有一个数据帧,如下所示: 我想在时间分组一个重复的数据,并应用不同的函数到和(例如,求和和计算卷加权平均值)...我知道我能做到 将重复索引分组,然后使用或函数获取第一行或最后一行,但这并不是我真正想要的。 是否有方法对不同列中的值进行分组,然后应用不同的(由我编写的)函数?

  • 问题内容: 我对熊猫的温度和辐射有一个时间序列。时间分辨率通常为1分钟。 如何将其降采样为一个小时的分辨率,以计算温度的小时 平均值 和 辐射的小时 总和 ? 问题答案: 使用pandas 0.18,重新采样API发生了变化(请参阅docs)。因此,对于> = 0.18的熊猫,答案是: 旧答案: 我正在回答我的问题,以反映与时间序列相关的变化(所有其他答案均已过时)。 使用> = 0.8的熊猫,答

  • 问题内容: 我是Python的新手,我不确定如何解决以下问题。 我有一个功能: 说我有数据框 而和是浮点类型。现在,我想将公式应用于数据帧的每一行,并将其作为额外的行“ Q”返回。一个示例(不起作用)将是: (仅返回“地图”类型) 在我的项目中,我将需要更多此类处理,并希望找到可行的方法。 问题答案: 以下应该工作: 如果您要做的只是计算某个结果的平方根,则使用矢量化的方法,它将大大加快速度: 时

  • 我想为不同的df-id应用一个函数,如果下一行不同于前一行,则返回1,否则返回0。 我完全不知道我该如何实现这一目标,无论如何都可以完成它吗? 数据结构如下: 预期输出应如下所示:

  • 问题内容: 可以说我有一个这样的列表: 我有一个函数,假设我想将该函数应用于该函数的每个子列表,可以计算出有关两个列表的一些分数。如何将此功能应用于的每个列表并在新列表中返回每个分数,如下所示: 我尝试使用以下功能: 问题答案: 您可以使用内置函数来执行此操作。 因此,如果您要应用的函数是,则可以执行以下操作: 在中,上面返回了一个地图迭代器,因此您需要一个显式调用: 如果您要为此编写一些必须在P