繁体   English   中英

如何处理具有不同值的相同列标题

[英]How to handle same column headers with different values

我有以下数据:

S.No   Department  stock stock  stock
1       Medicine        34  38  58
2       Pharma          23  39  71
3       ortho           76  12  81

我得到的源文件将列标题的重复值作为“stock”,它实际上应该是“Stock1”、“Stock2”和“Stock3”。 我不想手动而是以编程方式完成。

我试过:

df.rename(columns  = {df.columns[1]: 'Stock1'})
df.rename(columns  = {df.columns[2]: 'Stock2'})
df.rename(columns  = {df.columns[3]: 'Stock3'})

但这不起作用。

请帮忙。

几个故障点。

  1. pandas.DataFrame.rename方法返回一个副本。 您需要将其重新分配回名称df
  2. 你应该用一本字典来做
  3. 这行不通,因为你有三列命名相同的东西

我必须假设一些关于你的问题的一般形式的事情。 首先,我将您的数据框分成带有'stock'列和不带'stock'

df_stock = df.filter(regex='^stock$')
df_other = df.drop('stock', axis=1)

df_stock.columns += list(map(str, range(1, df_stock.shape[1] + 1)))

df_new = df_other.join(df_stock)

你试过 df.columns=['Stock1', 'Stock2', 'Stock3'] 吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM