Pandas基于Pandas表的Pandas列

ogq8wdun  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(83)

我想使用另一个基于匹配的AccountId和MappedField的查询表作为查询表来重命名一个框架中的列。查询表包含AccountId、MappedField和FieldName。
理想逻辑:
1.连接连接表和原始数据上的连接数据AccountId =原始数据帐户ID和LookupTable MappedField =原始数据列名称。
1.使用“原始数据表字段名”值重新命名“原始数据”列名称。
我还没有能够弄清楚如何做到这一点。我将非常感谢一些帮助和指导这个主题。提前谢谢你!

lookup_table = pd.read_excel(r'./../Reporting/Templates/ReportingData.xlsx')
account_list = [1001030,1001025]

for x in account_list:
    query = "select * from table where AccountId = ?;"
    
    df = pd.read_sql(query, con=conn, params=[x])

字符串

餐桌x1c 0d1x
原始数据

预期结果

oxf4rvwz

oxf4rvwz1#

您可以从查找表中创建一个dict,然后传递该dict来重命名列。

lookup_table = pd.read_excel(r'./../Reporting/Templates/ReportingData.xlsx')
account_list = [1001030,1001025]

for x in account_list:
    query = "select * from table where AccountId = ?;"
    new_col_names = lookup_table[lookup_table['Accountld']==x].set_index('MappedField')['FieldName'].to_dict()    
    df = pd.read_sql(query, con=conn, params=[x]).rename(columns=new_col_names)

字符串

相关问题