python - 如何比较两个表的 id 以及当它们相等时在另一列中添加一个值
问题描述
我必须验证包含表 1中的 id 列表的列中的“ number_id ”,并使用表 2中的控制号列表创建一个新列。
我在做:
import pandas as pd
table_1 = pd.read_excel('path/file.xlsx', sheet_name="sheet 1")
table_2 = pd.read_excel('path/file.xlsx', dtype='str')
table_1[['Number_id_table_1']].head(5)
Number_id_table_1
0 [35904690, 20344131]
1 [26360006]
2 NaN
3 [46780790]
4 [355343]
table_2.head()
control account_id_nk
0 71996761124 10197651
1 49991227097 1263884
2 71981020953 876828
3 11964723845 35661849
4 47992004868 19071134
要对值进行训练并添加我正在执行的控制编号:
from itertools import chain
def mapping_account_id(index, original_df, column_id_name = str()):
original_index = index
list_column_id = []
if original_index in original_df:
for ind in original_index:
list_column_id.append(original_df.iloc[original_index][column_id_name])
return list(set(list(chain(*list_column_id))))
else:
return None
table_1 ['Number_id_table_1_teste'] = table_1 ['Number_id_table_1'].apply(mapping_account_id, args = (table_2, 'control'))
每一行的结果都是“无”。但我知道这些值存在于表中。
Number_id_table_1_teste
0 None
1 None
2 None
3 None
4 None
我希望“ Number_id_table_1_teste ”列包含每个number_id的控制号。
Number_id_table_1_teste
0 [21964258763, 81999403136]
1 [92993930352]
2 NaN
3 [17996018821]
4 [85988943884]
解决方案
推荐阅读
- powershell - 无法使用 powershell 导入 Active Directory 模块
- qt - Qt Qtime 上午到下午,反之亦然
- python - Python - 如果在内部,websocket数据不会立即发送
- r-markdown - ioslides 演示文稿中的预览问题
- vba - 在 PowerPoint VBA 中获取当前监视器的大小
- c++ - Arduino C++:从外部类创建对象
- python - 为什么需要 sort() 函数
- asp.net-core - ASP.Net Core 3.1 Web API (ApiController), EF Core 3.1 {系统找不到指定的文件。}
- c - 在内核代码中获取当前目录的示例
- swift - 如何将浮点数组平滑插值到更大的数组中?