- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个非常大的数据框,我正在使用 dask 处理它。数据框大体上看起来像这样:
Col_1 Col_2 Bool_1 Bool_2
A 1 True False
B 1 True True
C 1 False False
D 1 True False
A 2 False True
B 2 False False
C 2 True False
D 2 True True
但它有数百万行。
我在这段代码中尝试做的是为每个组计算 Bool_1
和 Bool_2
之间的Jaccard 距离在 Col_2
中形成。这是因为该程序的目的是为 Col_2
中存在的每个组生成一行(每行都有多个统计信息,我只报告相关列).
为此,我首先使用 df.groupby("Col_2")
按 Col_2
对数据帧进行分组,但随后我不知道如何进行。到目前为止,我尝试的每一次尝试都引发了错误。
1:我尝试定义一个函数 compute_jacc_dist()
并通过 apply(compute_jacc_dist, axis=1)
将其传递给组,但它有 args 和 kwargs 的问题(尤其是轴,请参阅 https://github.com/dask/dask/issues/1572 ,我还无法解决)。
2:我尝试使用 from dask_distance import jaccard
并用它来计算 Bool_1
和 Bool_2< 之间的 J 距离
但它会产生奇怪的结果(即使没有交集,每个组也会返回 J=1)。
3:我尝试compute()
数据框并使用以下方法迭代组:
for name, group in df.groupby("Col_2"):
jacc = dask_distance.jaccard(group["Bool_1"], group["Bool_2"])
但是这个非常慢,因为它会触发计算,然后逐组对如此庞大的数据帧进行操作(即我不想使用它)。作为引用,具有此功能的脚本已运行两天,而我估计我尝试过的任何解决方案 #1 和 #2 如果设置正确,将在 1-2 小时内返回结果。
关于如何处理这个问题有什么建议吗?我理想的解决方案是以正确的方式使用 df.groupby("Col_1").apply(compute_jacc_dist)
。非常感谢任何帮助!
最佳答案
经过几个小时的尝试,我是这样做的。如果您正在阅读本文,您可能想阅读本文 ( How to apply euclidean distance function to a groupby object in pandas dataframe? ) 和本文 ( Apply multiple functions to multiple groupby columns )。
def my_function(x):
d = {}
v1 = np.array(x["Bool_1"])
v2 = np.array(x["Bool_2"])
intersection = np.logical_and(v1, v2).sum()
union = np.logical_or(v1, v2).sum()
d["Jaccard"] = float(intersection) / float(union)
return pd.Series(d, index=["Jaccard"])
df = df.groupby("Col_2").apply(my_function, meta={"Jaccard":"float16"}).compute()
解释
我创建了一个函数来计算数据帧两列之间的 Jaccard 距离。在该函数中,我创建了一个字典 (d
),它将包含我的计算结果。
拥有字典的好处是我可以添加任意多的计算,尽管这里只有一个。
然后该函数返回一个包含字典的 pd.Series
。
该函数应用于基于 Col_2
的数据帧组。 meta
数据类型在 apply()
中指定,并且整个事情在最后有 compute()
,因为它是一个 dask 数据框和一个必须触发计算才能得到结果。
apply()
应该有与输出列一样多的 meta
。
关于python - 如何将自定义函数应用于 dask 数据框中的组,使用多列作为函数输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60721290/
我想做的是让 JTextPane 在 JPanel 中占用尽可能多的空间。对于我使用的 UpdateInfoPanel: public class UpdateInfoPanel extends JP
我在 JPanel 中有一个 JTextArea,我想将其与 JScrollPane 一起使用。我正在使用 GridBagLayout。当我运行它时,框架似乎为 JScrollPane 腾出了空间,但
我想在 xcode 中实现以下功能。 我有一个 View Controller 。在这个 UIViewController 中,我有一个 UITabBar。它们下面是一个 UIView。将 UITab
有谁知道Firebird 2.5有没有类似于SQL中“STUFF”函数的功能? 我有一个包含父用户记录的表,另一个表包含与父相关的子用户记录。我希望能够提取用户拥有的“ROLES”的逗号分隔字符串,而
我想使用 JSON 作为 mirth channel 的输入和输出,例如详细信息保存在数据库中或创建 HL7 消息。 简而言之,输入为 JSON 解析它并输出为任何格式。 最佳答案 var objec
通常我会使用 R 并执行 merge.by,但这个文件似乎太大了,部门中的任何一台计算机都无法处理它! (任何从事遗传学工作的人的附加信息)本质上,插补似乎删除了 snp ID 的 rs 数字,我只剩
我有一个以前可能被问过的问题,但我很难找到正确的描述。我希望有人能帮助我。 在下面的代码中,我设置了varprice,我想添加javascript变量accu_id以通过rails在我的数据库中查找记
我有一个简单的 SVG 文件,在 Firefox 中可以正常查看 - 它的一些包装文本使用 foreignObject 包含一些 HTML - 文本包装在 div 中:
所以我正在为学校编写一个 Ruby 程序,如果某个值是 1 或 3,则将 bool 值更改为 true,如果是 0 或 2,则更改为 false。由于我有 Java 背景,所以我认为这段代码应该有效:
我做了什么: 我在这些账户之间创建了 VPC 对等连接 互联网网关也连接到每个 VPC 还配置了路由表(以允许来自双方的流量) 情况1: 当这两个 VPC 在同一个账户中时,我成功测试了从另一个 La
我有一个名为 contacts 的表: user_id contact_id 10294 10295 10294 10293 10293 10294 102
我正在使用 Magento 中的新模板。为避免重复代码,我想为每个产品预览使用相同的子模板。 特别是我做了这样一个展示: $products = Mage::getModel('catalog/pro
“for”是否总是检查协议(protocol)中定义的每个函数中第一个参数的类型? 编辑(改写): 当协议(protocol)方法只有一个参数时,根据该单个参数的类型(直接或任意)找到实现。当协议(p
我想从我的 PHP 代码中调用 JavaScript 函数。我通过使用以下方法实现了这一点: echo ' drawChart($id); '; 这工作正常,但我想从我的 PHP 代码中获取数据,我使
这个问题已经有答案了: Event binding on dynamically created elements? (23 个回答) 已关闭 5 年前。 我有一个动态表单,我想在其中附加一些其他 h
我正在尝试找到一种解决方案,以在 componentDidMount 中的映射项上使用 setState。 我正在使用 GraphQL连同 Gatsby返回许多 data 项目,但要求在特定的 pat
我在 ScrollView 中有一个 View 。只要用户按住该 View ,我想每 80 毫秒调用一次方法。这是我已经实现的: final Runnable vibrate = new Runnab
我用 jni 开发了一个 android 应用程序。我在 GetStringUTFChars 的 dvmDecodeIndirectRef 中得到了一个 dvmabort。我只中止了一次。 为什么会这
当我到达我的 Activity 时,我调用 FragmentPagerAdapter 来处理我的不同选项卡。在我的一个选项卡中,我想显示一个 RecyclerView,但他从未出现过,有了断点,我看到
当我按下 Activity 中的按钮时,会弹出一个 DialogFragment。在对话框 fragment 中,有一个看起来像普通 ListView 的 RecyclerView。 我想要的行为是当
我是一名优秀的程序员,十分优秀!