如何获得具有已知名称的列左侧的列名称?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获得具有已知名称的列左侧的列名称?相关的知识,希望对你有一定的参考价值。

如果我有一个读入熊猫的excel表格,我如何获得另一列我们知道名称的列的名称?问题的原因是,我们获得的Excel工作表包含命名和未命名列。

没有列名的列会自动命名为“未命名:x”(其中x是数字)。

因为我有一列具有已知名称,并且我也知道它的左侧是包含我需要的值的列,所以我想使用命名列作为引用来获取未知名称命名列。

示例:这些列,如果我在python中打印它们:

in: df.columns

out: Index(['Col1', 'Col2', 'Col3',
       'Col4', 'Col5', 'Col6', 'Col7',
       'Col8', 'Col9', 'Col10',
       'Col11', 'Col12', 'Col13',
       'Col14', 'Col15', 'Unnamed: 15', 'Unnamed: 16',
       'Unnamed: 17', 'Col19', 'Col20', 'Unnamed: 20',
       'Col22', 'Col23',
       'Col24', 'Col25', 'Col26', 'Col27', 'Unnamed: 27',
       'Unnamed: 28', 'Filename', 'Unnamed: 30', 'Unnamed: 31',
       'Unnamed: 32', 'Unnamed: 33', 'Unnamed: 34', 'Unnamed: 35',
       'Unnamed: 36', 'Unnamed: 37', 'Unnamed: 38', 'Unnamed: 39',
       'Unnamed: 40', 'Unnamed: 41', 'Unnamed: 42', 'Unnamed: 43',
       'Unnamed: 44', 'Unnamed: 45'],
      dtype='object')

如可以在这里看到的,有一个名为“文件名”的列,在它的左侧有一个自动命名为“未命名:28”的列。因为它可以更改基于未命名列数量的名称,所以我需要使用“ Filename”列作为引用来获取列名称“ Unnamed:28”,以便以后我可以从该列获取其他值目的。

有什么建议吗?

编辑:

我找到了解决该问题的另一种方法。使用get_indexer,我可以获取该列的索引,并使用它来获取该列中的数据。

df.iloc[:, df.columns.get_indexer(['Filename'])-1]
答案

您可以找到您知道的名称的列的索引,减一,然后找到您不知道的列的名称:

column_number = [i-1 for i, x in enumerate(df.columns) if x=='Filename']
df.columns[column_number[0]]

在您的专栏中输入'Unnamed 28'

也就是说,我认为正确导入数据而不是随后进行更正可能会有所回报。

以上是关于如何获得具有已知名称的列左侧的列名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何在pyspark中连接具有相同名称的列的值

laravel如何访问具有表编号名称的列?

postgresql 调用具有相同名称的列

如何使用 CSS 网格自动创建具有名称的列

如何将 SQL 查询结果行作为具有不同标题名称的列? [关闭]

如何在pandas DataFrame中选择和删除具有重复名称的列