【发布时间】:2019-04-29 07:31:38
【问题描述】:
我在 python 中有两个数据框,我想做一个笛卡尔积。 为此,我使用了具有以下相同键命令的合并:
print("dna", df_genes.size)
print("names",df_citations.size)
df_genes['key'] = 0
df_citations['key'] = 0
df = pd.merge(df_genes, df_citations, on='key').drop('key', axis = 1)
print("df before",df.size)
但是,每次运行我都会得到不同大小的笛卡尔积 - 它绝不是前两个数据帧的乘积。 例如,在上次运行中我得到:
('dna', 7437309)
('names', 165)
('df before', 490862394)
(如你所见,差别还是蛮大的)
这对我来说听起来很奇怪。有人知道吗?
【问题讨论】:
-
请分享您的 2 个数据框,以便我们重现您的代码
-
其中一个真的很大。你确定要吗?
-
@CmpScienceLearner 不是完整的数据框。先用 5 行
df_genes和 3 行df_citations自己尝试一下。如果您的代码给出了相同类型的意外输出,那么像这样分享这几行尝试回答的人可以重现您的问题并找到解决方案。
标签: python python-3.x pandas dataframe cartesian-product