对于df2
,仅在2019
年内提供数据:
type year value
0 a 2019 13
1 b 2019 5
2 c 2019 5
3 d 2019 20
df1
具有多年数据:
type year value
0 a 2015 12
1 a 2016 2
2 a 2019 3
3 b 2018 50
4 b 2019 10
5 c 2017 1
6 c 2016 5
7 c 2019 8
我需要将它们连接在一起,同时用df2
同年的值替换2019
中df1
中的 type date value
0 a 2015 12
1 a 2016 2
2 b 2018 50
3 c 2017 1
4 c 2016 5
5 a 2019 13
6 b 2019 5
7 c 2019 5
8 d 2019 20
值。
预期结果如下:
pd.concat([df1, df2], ignore_index=True, sort =False)
来自value
的结果,对于一个year
,显然在2019年的type
中有多个 type date value
0 a 2019 13
1 b 2019 5
2 c 2019 5
3 d 2019 20
4 a 2015 12
5 a 2016 2
6 a 2019 3
7 b 2018 50
8 b 2019 10
9 c 2017 1
10 c 2016 5
11 c 2019 8
。我应该如何改进代码?谢谢。
@Component
public class ExcludeSessionRepositoryFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest httpRequest, HttpServletResponse httpResponse,
FilterChain filterChain) throws ServletException, IOException {
httpRequest.setAttribute("org.springframework.session.web.http.SessionRepositoryFilter.FILTERED", Boolean.TRUE);
filterChain.doFilter(httpRequest, httpResponse);
}
}
答案 0 :(得分:3)
添加DataFrame.drop_duplicates
以获得type
之后的date
和concat
的最后一行。
如果type
和date
对在两个DataFrame中都是唯一的,则解决方案有效。
df = (pd.concat([df1, df2], ignore_index=True, sort =False)
.drop_duplicates(['type','date'], keep='last'))