Python 熊猫的Excel索引与匹配
我得到了一张这种格式的excel表格Python 熊猫的Excel索引与匹配,python,pandas,Python,Pandas,我得到了一张这种格式的excel表格 DATE AREA BEAU EFFORT SEASON VESSEL P/S 0 2016-04-01 SE LANTAU 1 16.24 SPRING STANDARD31516 P 1 2016-04-01 SE LANTAU 2 10.23 SPRING STANDARD31516 P 2 2016-04-01 SE LANTAU 1
DATE AREA BEAU EFFORT SEASON VESSEL P/S
0 2016-04-01 SE LANTAU 1 16.24 SPRING STANDARD31516 P
1 2016-04-01 SE LANTAU 2 10.23 SPRING STANDARD31516 P
2 2016-04-01 SE LANTAU 1 4.82 SPRING STANDARD31516 S
3 2016-04-01 SE LANTAU 2 2.98 SPRING STANDARD31516 S
4 2016-04-01 LAMMA 1 2.92 SPRING STANDARD31516 P
DATE STG # TIME HRD SZ AREA BEAU PSD EFFORT TYPE NORTHING EASTING SEASON BOATASSOC.P/S
0 2016-04-06 1 1025 12 W LANTAU 2 58 ON HKCRP 813713 802792 SPRING NONE S
1 2016-04-06 2 1113 3 W LANTAU 4 27 ON HKCRP 806173 802043 SPRING NONE S
2 2016-04-06 3 1345 2 SW LANTAU 2 ND OFF HKCRP 805606 803300 SPRING NONE NaN
3 2016-04-14 1 1613 4 W LANTAU 2 74 ON HKCRP 808800 800864 SPRING NONE S
4 2016-04-20 1 1339 4 W LANTAU 3 ND OFF HKCRP 805930 801929 SPRING NONE NaN
我得到了另一张excel表格,格式是这样的
DATE AREA BEAU EFFORT SEASON VESSEL P/S
0 2016-04-01 SE LANTAU 1 16.24 SPRING STANDARD31516 P
1 2016-04-01 SE LANTAU 2 10.23 SPRING STANDARD31516 P
2 2016-04-01 SE LANTAU 1 4.82 SPRING STANDARD31516 S
3 2016-04-01 SE LANTAU 2 2.98 SPRING STANDARD31516 S
4 2016-04-01 LAMMA 1 2.92 SPRING STANDARD31516 P
DATE STG # TIME HRD SZ AREA BEAU PSD EFFORT TYPE NORTHING EASTING SEASON BOATASSOC.P/S
0 2016-04-06 1 1025 12 W LANTAU 2 58 ON HKCRP 813713 802792 SPRING NONE S
1 2016-04-06 2 1113 3 W LANTAU 4 27 ON HKCRP 806173 802043 SPRING NONE S
2 2016-04-06 3 1345 2 SW LANTAU 2 ND OFF HKCRP 805606 803300 SPRING NONE NaN
3 2016-04-14 1 1613 4 W LANTAU 2 74 ON HKCRP 808800 800864 SPRING NONE S
4 2016-04-20 1 1339 4 W LANTAU 3 ND OFF HKCRP 805930 801929 SPRING NONE NaN
如果两个表之间的日期、面积、BEU和p/S匹配,我想将第一个表的努力列中的数字添加到表2中
我应该联接、合并还是映射这两个表?您可以同时使用“合并”和“联接” 第一列groupby col1、col2和最后一列
# My assumption is col1 + col2 + col_last when used as index cannot be duplicated
temp = df_2.groupby(['col1','col2','col_last']).first()
# df is the dataframe in which you want the extra column
df = df.merge(temp,left_on=['col1','col2','col_last'],right_index=True,how='left')
有一个主要问题,您想合并重复的列吗
2016年4月6日,西大屿山S
是重复的,也在第二个df2中。我想做一个类似excel中的索引和匹配功能的操作。但是有多个条件(第1列、第2列和最后一列),我已经尝试了您的解决方案,但它不起作用。你能看到我修改过的问题吗。希望能提供更多信息。只需使用这一行df3=df2.merge(df1[['DATE','AREA','beu','P/S','efforce']],on=['DATE','AREA','beu','P/S'],如何class='left')就可以了。它不起作用的原因是我在内容中获得了一些空间,并且两个数据帧之间不一致。在我删除空格后,它就可以工作了。df4=pd.merge(观察,努力['DATE','AREA','beu','P/S','effort']],on=['DATE','AREA','beu','P/S'],how='left')这相当于你的代码???