Python 使用键将一个表连接到另一个表

Python 使用键将一个表连接到另一个表,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个CSV文件df表示此文件。我在这个文件中有两个ID。一旦d\u id和i\u id。该程序现在运行一个特定的算法,并将概率和d_id返回到一个有序行中(如果更容易的话,我也可以停用这个有序行)。 在任何情况下,我都希望接收I\u id,而不是d\u id。有人能帮助我如何将d\u id映射到I\u id并仅获取上次输出显示的I\u id import pandas as pd d = {'d_id': [1, 2, 2, 3, 3, 3, 4], 'i_id': [99, 98

我有一个CSV文件
df
表示此文件。我在这个文件中有两个ID。一旦
d\u id
i\u id
。该程序现在运行一个特定的算法,并将
概率
d_id
返回到一个有序行中(如果更容易的话,我也可以停用这个有序行)。 在任何情况下,我都希望接收
I\u id
,而不是
d\u id
。有人能帮助我如何将
d\u id
映射到
I\u id
并仅获取上次输出显示的
I\u id

import pandas as pd
d = {'d_id': [1, 2, 2, 3, 3, 3, 4],
     'i_id': [99, 98, 98, 97, 97, 97, 96]}
df = pd.DataFrame(data=d)

print(df)

   d_id  i_id
0     1    99
1     2    98
2     2    98
3     3    97
4     3    97
5     3    97
6     4    96

d_new = {'d_id': [4, 2, 1, 3],
     'probability': [0.8557, 0.83215, 0.2563, 0.14521]}
df_new = pd.DataFrame(data=d_new)
   d_id  probability
0     4      0.85570
1     2      0.83215
2     1      0.25630
3     3      0.14521

print(df_new)
我试过的

result = df.merge(df_new, right_on='d_id')
print(result)

[OUT] TypeError: object of type 'NoneType' has no len()
我想要什么

   i_id   probability
0     96      0.85570
1     98      0.83215
2     99      0.25630
3     97      0.14521

我也试过了

result = df.merge(df_new, how='left', on='d_id')
print(result)

   d_id  i_id  probability
0     1    99      0.25630
1     2    98      0.83215
2     2    98      0.83215
3     3    97      0.14521
4     3    97      0.14521
5     3    97      0.14521
6     4    96      0.85570
尝试:

输出:

   d_id  i_id  probability
0     4    96      0.85570
1     2    98      0.83215
2     1    99      0.25630
3     3    97      0.14521
尝试:

输出:

   d_id  i_id  probability
0     4    96      0.85570
1     2    98      0.83215
2     1    99      0.25630
3     3    97      0.14521

我认为您只需要处理结果数据

import pandas as pd
d = {'d_id': [1, 2, 2, 3, 3, 3, 4],
     'i_id': [99, 98, 98, 97, 97, 97, 96]}
df = pd.DataFrame(data=d)

d_new = {'d_id': [4, 2, 1, 3],
     'probability': [0.8557, 0.83215, 0.2563, 0.14521]}
df_new = pd.DataFrame(data=d_new)

result = df.merge(df_new, how='left', on='d_id')[['i_id', 'probability']]
result.drop_duplicates(inplace=True)
结果:

   i_id  probability
0    99      0.25630
1    98      0.83215
3    97      0.14521
6    96      0.85570

我认为您只需要处理结果数据

import pandas as pd
d = {'d_id': [1, 2, 2, 3, 3, 3, 4],
     'i_id': [99, 98, 98, 97, 97, 97, 96]}
df = pd.DataFrame(data=d)

d_new = {'d_id': [4, 2, 1, 3],
     'probability': [0.8557, 0.83215, 0.2563, 0.14521]}
df_new = pd.DataFrame(data=d_new)

result = df.merge(df_new, how='left', on='d_id')[['i_id', 'probability']]
result.drop_duplicates(inplace=True)
结果:

   i_id  probability
0    99      0.25630
1    98      0.83215
3    97      0.14521
6    96      0.85570

谢谢但是我怎么能只得到I_id和概率呢?用
[['I_id','probability']]
链接上面的内容?谢谢!但是我怎么能只得到I_id和概率呢?用
[['I_id','probability']]
链接上面的内容?