Python 熊猫合并问题

Python 熊猫合并问题,python,pandas,merge,group-by,Python,Pandas,Merge,Group By,我有两个数据帧 df1 KO-ST 1_UID 2_Vloge 0 1976-_ 200106897 200106897.0 1 991-_ 200108737 200108737.0 2 2147--- 200109776 200109776.0 3 2048-_ 200300912 200300912.0 4 2194-_ 200301057 200301057.0 5 2386--- 200301312 200301312

我有两个数据帧

df1

    KO-ST  1_UID      2_Vloge
0   1976-_  200106897  200106897.0
1    991-_  200108737  200108737.0
2  2147---  200109776  200109776.0
3   2048-_  200300912  200300912.0
4   2194-_  200301057  200301057.0
5  2386---  200301312  200301312.0
6   2002-_  200301315  200301315.0
7   1324-_  200301573  200301573.0
8   1625-45  200301868  200301868.0
9   1625-_  200301868  200301868.0
...

df2
                              a                    b
SID  KO-ST                                     
10000002 851-601          288.0                288.0
10000003 851-1             68.0                 68.0
10000328 853-103           64.5                 64.5
10000583 861-25            30.1                 30.1
10001002 2590-1            96.7                178.9
10001004 2593-2           349.2                349.2
10001005 2593-3           282.0                295.2
10001006 2593-4           121.5                121.5
10001008 2593-6           109.3                110.3
10001009 2593-7             9.9                  9.9
...
有超过500.000行,
KO-ST
是唯一的,
SID
可以重复。我正在尝试对它们进行分组,并重复列
a
b
中的值。KO-ST的值是唯一的,在10%的情况下-不完美,在这种情况下(例如1324-uuuu uu u;),df2中没有匹配项

我的初始代码是

REN_ES = pd.merge(df1, df2, left_index=True, on = 'KO-ST')
但我有一个错误:

KeyError: 'KO-ST'
我哪里弄错的?df1是导入2个csv文件并合并某些值的结果。为便于数据处理,添加了列
KO-ST
,作为两列的组合,具有以下功能:

DS_STA['KO-ST'] =DS_STA['KO_SIFKO'].map(str) + "-" + DS_STA['STEV'].map(str)
KO-SIFKO
STEV
是整数,因此代码是整数。我之所以添加这个,是因为我怀疑数据类型的识别有问题。

df2有一个多索引,“KO-ST”不是一个列名
left_index=True
覆盖'KO-ST'上的
,因此将其删除。尝试:

REN_ES = pd.merge(df1, df2.reset_index(), on = 'KO-ST')
df2有一个多索引,“KO-ST”不是列名。
left\u index=True
覆盖“KO-ST”上的
,因此将其删除。尝试:

REN_ES = pd.merge(df1, df2.reset_index(), on = 'KO-ST')

不是关于这个问题,但是.astype(str)比.map(str)更有效,而且。。。在这个问题上@lwileczekNot也有同样的错误,但是.astype(str)比.map(str)更有效,而且。。。同样的错误@lwileczek