首页 > 解决方案 > 如何处理熊猫中的同名列

问题描述

我有一个数据框,其中恰好有一些列具有相同的列名。

df_raw[column_name] # [141 rows x 2 columns]

我有一个提取唯一值的代码,但如果它有多个维度,它就不起作用。

ipdb> dt_raw[column_name].unique()
*** AttributeError: 'DataFrame' object has no attribute 'unique'

我不希望在处理之前使用 df_raw.columns 来“更新”所有列。有没有好的方法来处理这个?

我尝试了以下代码,但出现错误:

ipdb> dt_raw[column_name][0]
*** KeyError: 0

问题:

  1. 如何知道有多少列具有相同的名称。在上面的例子中,我期待 2。
  2. 如何单独引用列(例如,更新目的)。

标签: pandas

解决方案


要获得 的列数column_name,您可以这样做df_raw[column_name].shape[1]。您可以通过实际位置而不是名称访问数据框,iloc语法如下:df_raw.iloc[:,n]将返回数据框的第 n 列,df_raw[column_name].iloc[:,n]并将返回名为“column_name”的第 n 列(请记住,它是零索引的)。

此外,如果您想要唯一的列名,您可以执行set(df_raw.columns).


推荐阅读