【发布时间】:2018-11-08 14:17:22
【问题描述】:
我有 2 个数据框,df1 和 df2:
df1
Out[66]:
A B
0 1 11
1 1 2
2 1 32
3 1 42
4 1 54
5 1 66
6 2 16
7 2 23
8 3 13
9 3 24
10 3 35
11 3 46
12 3 51
13 4 12
14 4 28
15 4 39
16 4 49
df2
Out[80]:
B
0 32
1 42
2 13
3 24
4 35
5 39
6 49
我想合并数据框,但同时包括 A 列中集合的第一个和/或最后一个值。这是期望结果的一个示例:
df3
Out[93]:
A B
0 1 2
1 1 32
2 1 42
3 1 54
4 3 13
5 3 24
6 3 35
7 3 46
8 4 28
9 4 39
10 4 49
我正在尝试使用merge,但这只会分割数据帧中重合的部分。有人有解决这个问题的想法吗?谢谢!
【问题讨论】:
-
第一个/最后一个意思是 max 和 min ?我不明白为什么 2 和 54 会出现在 df3 中
-
如果A列中的数字相同,我指的是立即上排和下排
-
好的,我明白了,我会尝试一些东西...到目前为止你尝试了什么?
-
索引 7 A=2 B=23 是否应该成为结果的一部分,因为索引 8 B=13 在列表中?
-
我首先合并两个数据框
df1.merge(df2)然后我试图通过unique()获取我需要切片的列 A 的数字在这里我只能考虑找到 df2.B在 df1 旁边并尝试使用位置 +1 和 -1 进行斩波但是这不能继续使用相同数量的 A 列
标签: python pandas dataframe merge