Renaming columns in a Pandas dataframe with duplicate column names?

后端 未结 4 903
面向向阳花
面向向阳花 2021-01-04 20:19

I have a df X with columns with duplicate names:

In [77]: X_R
Out[77]: 
      dollars  dollars
   0   0.7085   0.5000

I want to rename it

4条回答
  •  栀梦
    栀梦 (楼主)
    2021-01-04 21:02

    Here is another dynamic solution that I think is nicer

    In [59]: df
    Out[59]:
       a  x  x  x  z
    0  6  2  7  7  8
    1  6  6  3  1  1
    2  6  6  7  5  6
    3  8  3  6  1  8
    4  5  7  5  3  0
    In [61]: class renamer():
                 def __init__(self):
                      self.d = dict()
    
                  def __call__(self, x):
                      if x not in self.d:
                          self.d[x] = 0
                          return x
                      else:
                          self.d[x] += 1
                          return "%s_%d" % (x, self.d[x])
    
              df.rename(columns=renamer())
    Out[61]:
       a  x  x_1  x_2  z
    0  6   2   7   7  8
    1  6   6   3   1  1
    2  6   6   7   5  6
    3  8   3   6   1  8
    4  5   7   5   3  0
    

提交回复
热议问题