熊猫-根据其他数据框系列获取列位置

时间:2019-04-25 17:38:10

标签: pandas python-2.7

我需要基于从数据帧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'))

1 个答案:

答案 0 :(得分:0)

我已经找到解决方法。首先,我使用map(list, df.values)将数据框2中的行转换为列表(实际上是列表的列表),然后从该列表中提取(按位置,因为它将始终是固定的)对应于“ Customer_Number”的值并传递它作为get_loc

的参数

尽管这解决了我的问题,但我很乐意接受更为优雅的解决方案作为答案。