- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用两个数据框,一个用于用户数据:
USER_ID_hash SESSION_ID_hash PURCHASEID_hash SEX_ID
1118263 02445d553744423d4f0ea545b5d0b8e0 47de469df74e5e42a24bfd211fb658c6 m
2669790 1c7af4a49d445da0f6a4b985623e9d78 9a347a9e4ab981bb5e9643d19830ff8e m
1535911 839938507de5eb1a81596499f22cb777 b7dd06ea7277f19c24d322b6257cd73f f
680107 a99a661aedc1597ce13dc85f96fcb23d fdad39b2f01378c59dc53cf5454606fe m
895968 7c233e047f46653273aec2407e46e034 952ab03e8abaa8f9942ea0aaca79bca4 f
1963366 4349579a3398f3155363d67bb5742ca1 225977cc2924ea37d49f190e12aa8511 m
1520880 3964e87932aa3b61f2cc1a58345c2b4c 2a8964196164ca227d2ac7fe14b3f303 f
30698 7afc4e216672636f61dfbad40d9816c6 6bd8061cf66e8d98f6c41c56fd2a86ec m
1370217 0c7eb402632ace5f62fc81eb6139e448 f8e104ef090e8504c7b57b4dce663af3 m
1171336 bad370d216ccd40302da3fb505ba2501 0cdd2301182eb1097b478dc07380c198 m
还有一个带有产品详细信息的:
COUPON_ID_hash DISPEND_MONTH DISPFROM_MONTH VALIDFROM_MONTH VALIDEND_MONTH
70678 34a80aff2d963d28013110789cfdfdb9 11 11
91899 f4ecdf6a1ccd5c4ae83c7a83a9f68454 1 1 1.0 2.0
37526 f0ab02ced0e91e097abc1b3c89a9d9b0 9 9 9.0 2.0
62462 e97a601bc242db11579f7eada35205fd 10 10 11.0 4.0
127695 771941be288930b649c7bb214efe2b07 3 3 3.0 9.0
136313 2faa0e168770fb01a21f3ddf1b23aeab 4 4
156974 c340a7ab46f19c1ba3b57b513f16bead 6 6 6.0 9.0
158450 d84eb4dfc6d0b7bf0e8c50c06d14e4fe 6 6
9992 88419bf4acc9f7e5c3529fc3bde29da6 7 7 7.0 8.0
73509 530aa1bf00c00f02255eeea81559b932 11 11
我想根据他们的 PK 组合来合并它们,它们是:USER_ID_hash
和 COUPON_ID_hash
并以此创建一个新功能,其中将包含这两个 PK 的所有可能情况。
例如,对于第一个 User_id
,我将有十行,每个 Coupon_id
一行,其他 9 个 User_id
也一样。
有没有一个函数可以使这个连接高效? F1,F2...FN 是输入数据帧的特征。
02445d553744423d4f0ea545b5d0b8e0-34a80aff2d963d28013110789cfdfdb9 F1 F2 FN
02445d553744423d4f0ea545b5d0b8e0-f4ecdf6a1ccd5c4ae83c7a83a9f68454 F1 F2 FN
02445d553744423d4f0ea545b5d0b8e0-f0ab02ced0e91e097abc1b3c89a9d9b0 F1 F2 FN
最佳答案
看起来您想要两个数据帧的笛卡尔积。一种方法是添加一个 key
,它对两个数据帧中的所有值重复,并且 merge
他们使用这个 key
。
这背后的原因是如 documentation 中所述, 当键组合在两个数据框中出现不止一次时 pd.merge
做笛卡尔积:
It is worth spending some time understanding the result of the many-to-many join case. In SQL / standard relational algebra, if a key combination appears more than once in both tables, the resulting table will have the Cartesian product of the associated data.
请注意,在这种情况下,所有类型的合并都会产生相同的结果,这里简单地选择 left
,以便结果按与 df1
中相同的出现顺序排序>:
cp = df1.assign(key=0).merge(df2.assign(key=0), how='left', on = 'key')
cp[['USER_ID_hash','COUPON_ID_hash']]
USER_ID_hash COUPON_ID_hash
0 1118263 f4ecdf6a1ccd5c4ae83c7a83a9f68454
1 1118263 34a80aff2d963d28013110789cfdfdb9
2 1118263 f0ab02ced0e91e097abc1b3c89a9d9b0
3 1118263 e97a601bc242db11579f7eada35205fd
4 1118263 771941be288930b649c7bb214efe2b07
5 1118263 2faa0e168770fb01a21f3ddf1b23aeab
6 1118263 c340a7ab46f19c1ba3b57b513f16bead
7 1118263 d84eb4dfc6d0b7bf0e8c50c06d14e4fe
8 1118263 88419bf4acc9f7e5c3529fc3bde29da6
9 1118263 530aa1bf00c00f02255eeea81559b932
10 2669790 f4ecdf6a1ccd5c4ae83c7a83a9f68454
11 2669790 34a80aff2d963d28013110789cfdfdb9
12 2669790 f0ab02ced0e91e097abc1b3c89a9d9b0
关于python - 将 DataFrames 与 Pks 的所有组合合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53907526/
我有几个长度不等的 vector ,我想对其进行cbind。我将 vector 放入列表中,并尝试结合使用do.call(cbind, ...): nm <- list(1:8, 3:8, 1:5)
合并(合并)两个 JSONObjects 的最佳方式是什么? JSONObject o1 = { "one": "1", "two": "2", "three": "3" }
我在一个表中有许多空间实体,其中有一个名为 Boundaries 的 geometry 字段。我想生成一个具有简化形状/几何图形的 GeoJson 文件。 这是我的第一次尝试: var entitie
谁能说出为什么这个选择返回 3.0 而不是 3.5: SELECT coalesce(1.0*(7/2),0) as foo 这个返回 3: SELECT coalesce(7/2,0) as foo
首先抱歉,也许这个问题已经提出,但我找不到任何可以帮助我的东西,可能是因为我对 XSLT 缺乏了解。 我有以下 XML: 0 OK
有时用户会使用 Windows 资源管理器复制文件并在他们应该执行 svn 存储库级别的复制或合并时提交它们。因此,SVN 没有正确跟踪这些变化。一旦我发现这一点,损坏显然已经完成,并且可能已经对相关
我想组合/堆叠 2 个不同列的值并获得唯一值。 如果范围相邻,则可以正常工作。例如: =UNIQUE(FILTERXML(""&SUBSTITUTE(TEXTJOIN(",",TRUE,TRANSPO
使用iTextSharp,如何将多个PDF合并为一个PDF,而又不丢失每个PDF中的“表单字段”及其属性? (我希望有一个使用来自数据库的流的示例,但文件系统也可以) 我发现this code可以正常
是否有一个合并函数可以优先考虑公共(public)变量中的非缺失值? 考虑以下示例。 首先,我们生成两个 data.frames,它们具有相同的 ID,但在特定变量上有互补的缺失值: set.seed
我们正在尝试实现 ALM Rangers 在最新的 Visual Studio TFS Branching and Merging Guide 中描述的“基本双分支计划”。 .从指导: The bas
我在不同目录(3个不同名称)中有很多(3个只是一个例子)文本文件,如下所示: 目录:A,文件名:run.txt 格式:txt制表符分隔 ; file one 10 0.2 0.5 0.
我有一张包含学生等级关系的表: Student Grade StartDate EndDate 1 1 09/01/2009 NULL 2
我在学习 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/working-with-associatio
我觉得我有世界上最简单的 SVN 用例: 我有一个文件,Test.java在 trunk SVN的。 我分行trunk至 dev-branch . 我搬家Test.java进入 com/mycompa
我有两个数据框,其中一些列名称相同,而另一些列名称不同。数据框看起来像这样: df1 ID hello world hockey soccer 1 1 NA NA
Elasticsearch 中是否缺少以扁平化形式(多个子/子aggs)返回结果的方法? 例如,当前我正在尝试获取所有产品类型及其状态(在线/离线)。 这就是我最终得到的: aggs [ { key:
如何合并如下所示的 map : Map1 = Map(1 -> Class1(1), 2 -> Class1(2)) Map2 = Map(2 -> Class2(1), 3 -> Class2(2)
我试图通过从netezza服务器导入数据来合并两个数据集。 以下是数据集,其数字为,ID为,字母为,名称为: 下表都是使用命令从netezza导入的: sqoop import --connect n
我有两个数组 $array1 = array('first', 'second', 'third', 'fourth'); $array2 = array('first', 'third', 'fou
我正在 SQL Server 中运行合并。在我的更新中,我只想在值发生更改时更新该行。有一个版本行在每次更新时都会递增。下面是一个例子: MERGE Employee as tgt USING (SE
我是一名优秀的程序员,十分优秀!