gpt4 book ai didi

python - 即使在 `pandas.merge` 与 `left` 选项之后,行数也会发生变化

转载 作者:太空狗 更新时间:2023-10-29 18:01:23 26 4
gpt4 key购买 nike

我正在使用 pandas.merge 合并两个数据框。即使在指定了 how = left 选项之后,我发现合并数据框的行数比原来的要大。为什么会这样?

panel = pd.read_csv(file1, encoding ='cp932')
before_len = len(panel)

prof_2000 = pd.read_csv(file2, encoding ='cp932').drop_duplicates()

temp_2000 = pd.merge(panel, prof_2000, left_on='Candidate_u', right_on="name2", how="left")

after_len = len(temp_2000)
print(before_len, after_len)
> 12661 13915

最佳答案

这听起来像是在 'name2' 下的 right 中有多个行与您为 left 设置的键相匹配。使用选项 'how='left'pandas.DataFrame.merge()仅意味着:

  • left: use only keys from left frame

但是,结果对象中的实际行数不一定与 left 对象中的行数相同。

例子:

In [359]: df_1
Out[359]:
A B
0 a AAA
1 b BBA
2 c CCF

然后是另一个看起来像这样的 DF(请注意左侧有多个条目用于您所需的 key ):

In [360]: df_3
Out[360]:
key value
0 a 1
1 a 2
2 b 3
3 a 4

如果我在 left.A 上合并这两个,会发生以下情况:

In [361]: df_1.merge(df_3, how='left', left_on='A', right_on='key')
Out[361]:
A B key value
0 a AAA a 1.0
1 a AAA a 2.0
2 a AAA a 4.0
3 b BBA b 3.0
4 c CCF NaN NaN

尽管我用 how='left' 合并了,如您在上面所见,但要合并的行不止一行,结果如下所示 pd.DataFrame 实际上比 left 上的 pd.DataFrame 有更多行。

希望对您有所帮助!

关于python - 即使在 `pandas.merge` 与 `left` 选项之后,行数也会发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37095161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com