Python 使用键将一个表连接到另一个表
我有一个CSV文件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
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']]
链接上面的内容?