我有两个数据表。
import numpy as np
df['NewValue'] = np.interp(df['StartingValue'].values,
lookup_table['StartingValue'].values,
lookup_table['NewValue'].values)
我想通过" STATE_NAME"
合并两个表格Table 1: 1349445 rows and 21 cols
Table 2: 3235 rows x 4 cols
Table 1:
YEAR STATE_NAME CROP .......
1990 Alabama Cotton
1990 Alabama Cotton
1990 Alabama Peanuts
.
.
.
Table 2:
STATE STATEFP COUNTYFP STATE_NAME
AK 2 13 Alaska
AK 2 16 Alaska
AK 2 20 Alaska
AK 2 50 Alaska
我收到以下错误。有人可以帮我弄清楚我在做错了什么。
提前致谢。
Table 1 <- data.table(Table 1)
Table 2 <- data.table(Table 2)
setkeyv(Table 1, c("STATE_NAME"))
setkeyv(Table 2, c("STATE_NAME"))
Hydra_merge <- merge(Table 1, Table 2, all.x = TRUE)
答案 0 :(得分:0)
我不确定为什么还没有人回答这个问题,这可能对OP没有用,但这很简单!
错误消息指出,两个表中的重复行都有很多行。如果您有两个具有5和6行的表,并且键是唯一的,则它们的联接将至少有5行,最多11行(取决于all.x
,all.y
或{{ 1}})。
如果相反,在两个表中所有行都具有相同的键,则将它们连接将导致一个表中包含30种毫无意义的行。
如:
all
table_1: table_2:
key val1 key val2
k a k 1
k b k 2
k c k 3
k d k 4
k e k 5
k 6
merge(table_1, table_2)
key val1 val2
k a 1
k a 2
k a 3
k a 4
... ...
k c 2
k c 3
k c 4
k c 5
... ...
k e 3
k e 4
k e 5
k e 6
已注意到,它正在尝试为您提供帮助。这也是为什么它声明data.table
并带走您可能是错误的但我要告诉谁的两个表的笛卡尔积的原因。
现在,我很想尝试猜测您的两个表的大小,因为它们的行数之和为1.352.680,结果表的混乱情况为141.691.725,状态为50(但其中一个的表中跳过了阿拉斯加),但也许是下一次。