Python 如何处理具有不同值的相同列标题
我有以下数据:Python 如何处理具有不同值的相同列标题,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有以下数据: 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
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.columns[2]:'Stock2'})
rename(columns={df.columns[3]:'Stock3'})
但这是行不通的
请提供帮助。您尝试过df.columns=['Stock1'、'Stock2'、'Stock3']吗?几个失败点
pandas.DataFrame.rename方法返回一个副本。您需要将其重新分配回名称df
'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_new是第二行代码中的结果(df_other=df.drop('stock',axis=1)),它会抛出一个错误,说:Expected Tuple,有一个string@zsh_18明天我得去看看。不用担心。非常感谢