【发布时间】:2015-02-15 09:47:01
【问题描述】:
我有两个数据框 d1 和 d2,它们都具有相同的分类变量。但是,特定变量的类别可能不同。
例如,对于数据框 d1 中的变量 v1,我们有以下类别或级别:“a”、“b”、“c”、“d”、 “e” 对于相同的变量 v1,在数据框 d2 中,我们有级别:“a”、“b”、“c”
然后我想在数据帧 d1 中转换 v1,以便仅保留与 d2 共同的级别,其余的重新标记为“其他”,即 d1[“v1”] 应转换为:“a”, “b”、“c”、“其他”、“其他”
两个数据框都有超过 400 万个观测值,因此我正在寻找一种快速的方法来做到这一点。
示例如下:
d1 = pd.DataFrame({"id": range(1, 11), "v1": ["a", "b", "c", "d", "e", "a", "e", "d", "a", "d"]})
d2 = pd.DataFrame({"id": range(1, 11), "v1": ["a", "b", "c", "a", "c", "b", "c", "a", "b", "a"]})
d1
id v1
0 1 a
1 2 b
2 3 c
3 4 d
4 5 e
5 6 a
6 7 e
7 8 d
8 9 a
9 10 d
[10 rows x 2 columns]
d2
id v1
0 1 a
1 2 b
2 3 c
3 4 a
4 5 c
5 6 b
6 7 c
7 8 a
8 9 b
9 10 a
[10 rows x 2 columns]
转换后,新的 d1 应该是这样的:
d1
id v1
0 1 a
1 2 b
2 3 c
3 4 other
4 5 other
5 6 a
6 7 other
7 8 other
8 9 a
9 10 other
[10 rows x 2 columns]
【问题讨论】:
标签: python python-2.7 python-3.x pandas dataframe