我需要基于从数据帧2中提取的列名称中的值来获取数据帧1中的列位置。在示例中,我显示df1中的列位置为“ 0”,其名称为“ Customer_Number”。在df2中,列“标头”的值为“ Customer_Number”。 我正在使用'df.columns.get_loc',如果我传递了确切的列名,它会正常工作:
df1.columns.get_loc('Customer_Number')
结果:0
但是,如果我作为df2中的列名对象传递(“ df2.Headers”仅返回一个值,即“ Customer_Number”),则会引发错误:
df1.columns.get_loc(df2.Headers)
结果: TypeError:'635 Customer_Number 名称:标头,dtype:对象'是无效的键
我尝试将对象类型转换为字符串,但错误仍然相同:
df1.columns.get_loc(df2.Headers.astype('str'))
答案 0 :(得分:0)
我已经找到解决方法。首先,我使用map(list, df.values)
将数据框2中的行转换为列表(实际上是列表的列表),然后从该列表中提取(按位置,因为它将始终是固定的)对应于“ Customer_Number”的值并传递它作为get_loc
尽管这解决了我的问题,但我很乐意接受更为优雅的解决方案作为答案。