我有以下数据:
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'})
但这不起作用。
请帮助。
答案 0 :(得分:1)
几个故障点。
pandas.DataFrame.rename
方法返回一个副本。您需要将其重新分配回名称df
我必须假设一些关于您问题的一般形式的事情。首先,我将您的数据框分为带有'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)
答案 1 :(得分:0)
您是否尝试过df.columns = ['Stock1','Stock2','Stock3']?