如何在pandas中处理同名列

如何在pandas中处理同名列,pandas,Pandas,我有一个dataframe,它碰巧有一些列具有相同的列名 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“更新”所有列以使其唯一。有什么

我有一个dataframe,它碰巧有一些列具有相同的列名

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
问题:

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

  • 要获取具有
    column\u name
    的列数,可以执行
    df\u raw[column\u name].shape[1]
    。您可以使用
    iloc
    语法按实际位置而不是名称访问数据帧:
    df_-raw。iloc[:,n]
    将返回数据帧的第n列,
    df_-raw[column_-name]。iloc[:,n]
    将返回名为“column_-name”的第n列(请记住,它的索引为零)


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

    我得到了答案。谢谢收看

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

  • 是的,df_raw[column_name]。形状[1]有效,我得到了2。df_raw.iloc[column_name][:,0]不起作用,但-***TypeError:无法使用的这些索引器[MASKED column name]对进行位置索引。无论如何,谢谢你的回复。几分钟前我找到了一个工作代码。@Earl哎呀,对不起。它应该是
    df_raw[column_name].iloc[:,n]
    @contraction是的,它正在工作。有趣的是,熊猫有不同的方式做同样的事情。在本例中,看起来.iloc和.ix执行相同的操作。
    len(df_raw[column_name].columns)
    
    df_raw[column_name].ix[:,0]  #first column
    df_raw[column_name].ix[:,1]  #2nd column, etc