使用数据帧列以相同顺序从另一个帧中 select 行
Use a dataframes column to select rows from another frame in the same order
需要一些 pandas 从这里开始:
考虑两个数据帧 A
和 B
。两者都包含具有标识符值的列 id
:
A: id valA
8 ?
2 ?
4 ?
B: id valB valC
1 ? ?
4 ? ?
3 ? ?
8 ? ?
2 ? ?
我需要一个版本的数据框 B
,它仅包含包含来自 A[id]
的标识符的行,其顺序与 A
中的顺序完全相同。即:
B': id valB valC
8 ? ?
2 ? ?
4 ? ?
我认为这是 pandas 中的基本操作,但我现在似乎缺少 google 的词汇。
我试过了
B.loc[B['id'].isin(A['id'])]
但这似乎不是解决方案 - 结果中的列 id
与 A
.
中的值顺序不同
您可以使用 pd.merge
In [92]: A.merge(B)
Out[92]:
id valA valB valC
0 8 ? ? ?
1 2 ? ? ?
2 4 ? ? ?
需要一些 pandas 从这里开始:
考虑两个数据帧 A
和 B
。两者都包含具有标识符值的列 id
:
A: id valA
8 ?
2 ?
4 ?
B: id valB valC
1 ? ?
4 ? ?
3 ? ?
8 ? ?
2 ? ?
我需要一个版本的数据框 B
,它仅包含包含来自 A[id]
的标识符的行,其顺序与 A
中的顺序完全相同。即:
B': id valB valC
8 ? ?
2 ? ?
4 ? ?
我认为这是 pandas 中的基本操作,但我现在似乎缺少 google 的词汇。
我试过了
B.loc[B['id'].isin(A['id'])]
但这似乎不是解决方案 - 结果中的列 id
与 A
.
您可以使用 pd.merge
In [92]: A.merge(B)
Out[92]:
id valA valB valC
0 8 ? ? ?
1 2 ? ? ?
2 4 ? ? ?