Python 获取数据帧的索引以匹配行值
我必须在熊猫中创建数据帧,Python 获取数据帧的索引以匹配行值,python,pandas,Python,Pandas,我必须在熊猫中创建数据帧,A和B: A: 其中0123445是数据帧的索引 以及另一个以字符串作为索引的数据帧: B = pd.DataFrame({0:[9.43, 1.24, 9.09, 4.32, 8.85]}, index=['p_32','p_21','p_01','p_05','p_76']) 'p_32' 9.43 'p_21' 1.24 'p_01' 9.09 'p_05' 4.32 'p_76' 8.75 A第一列中的所有数字都包含在B中,但并
A
和B
:
A:
其中0123445
是数据帧的索引
以及另一个以字符串作为索引的数据帧:
B = pd.DataFrame({0:[9.43, 1.24, 9.09, 4.32, 8.85]}, index=['p_32','p_21','p_01','p_05','p_76'])
'p_32' 9.43
'p_21' 1.24
'p_01' 9.09
'p_05' 4.32
'p_76' 8.75
A
第一列中的所有数字都包含在B
中,但并非相反。我想获得B
who的行号与A
匹配的索引字符串,同时保留A
因此,我需要:
'p_21'
'p_76'
'p_05'
我将使用连接操作来处理这个程序。首先,使用B上的
reset_index
,使索引成为数据帧中的新列。然后使用内部联接,使用merge
函数将两个数据帧组合在一起。确保在联接操作期间禁用排序。新数据框中的索引列将具有您想要的内容
以下是有关连接的熊猫文档您可以使用此函数:
In [141]: B[B[0].isin(A[0])].index
Out[141]: Index(['p_21', 'p_05', 'p_76'], dtype='object')
In [142]: B[B[0].isin(A[0])]
Out[142]:
0
p_21 1.24
p_05 4.32
p_76 8.75
数据:
我最初是这样想的,但它不能满足维持与在一个系统中相同的秩序的要求
In [141]: B[B[0].isin(A[0])].index
Out[141]: Index(['p_21', 'p_05', 'p_76'], dtype='object')
In [142]: B[B[0].isin(A[0])]
Out[142]:
0
p_21 1.24
p_05 4.32
p_76 8.75
In [139]: A
Out[139]:
0
0 1.24
1 8.75
2 4.32
In [140]: B
Out[140]:
0
p_32 9.43
p_21 1.24
p_01 9.09
p_05 4.32
p_76 8.75