gpt4 book ai didi

python - 为什么 Pandas 内连接会给出 ValueError : len(left_on) must equal the number of levels in the index of "right"?

转载 作者:IT老高 更新时间:2023-10-28 20:32:56 35 4
gpt4 key购买 nike

我正在尝试将 DataFrame A 内部连接到 DataFrame B 并遇到错误。

这是我的加入声明:

merged = DataFrameA.join(DataFrameB, on=['Code','Date'])

这是错误:

ValueError: len(left_on) must equal the number of levels in the index of "right"

我不确定列顺序是否重要(它们不是真正“有序”的吗?),但以防万一,DataFrame 的组织方式如下:

DataFrameA:  Code, Date, ColA, ColB, ColC, ..., ColG, ColH (shape: 80514, 8 - no index)
DataFrameB: Date, Code, Col1, Col2, Col3, ..., Col15, Col16 (shape: 859, 16 - no index)

我需要更正我的加入声明吗?还是有另一种更好的方法来获取这两个 DataFrame 的交集(或内部连接)?

最佳答案

如果您没有加入索引,请使用 merge:

merged = pd.merge(DataFrameA,DataFrameB, on=['Code','Date'])

跟进以下问题:

这是一个可重现的例子:

import pandas as pd
# create some timestamps for date column
i = pd.to_datetime(pd.date_range('20140601',periods=2))

#create two dataframes to merge
df = pd.DataFrame({'code': ['ABC','EFG'], 'date':i,'col1': [10,100]})
df2 = pd.DataFrame({'code': ['ABC','EFG'], 'date':i,'col2': [10,200]})

#merge on columns (default join is inner)
pd.merge(df, df2, on =['code','date'])

这个结果是:

    code    col1    date    col2
0 ABC 10 2014-06-01 10
1 EFG 100 2014-06-02 200

运行此代码时会发生什么?

关于python - 为什么 Pandas 内连接会给出 ValueError : len(left_on) must equal the number of levels in the index of "right"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28228781/

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