Pandas按位置覆盖列名

时间:2017-04-23 15:33:19

标签: python pandas dataframe

我正在读csv,我想覆盖前两个列名。

  • 我不能使用df.rename(columns={0:'name 1', 1:'name 2'}),因为这些列没有被称为0和1.他们有名字,我只想把它们扔掉。

  • 好像是

    df.columns.values[0] = 'name 1'
    df.columns.values[1] = 'name 2'
    

    存在严重问题,因为之后,df['name 1']给了我一个KeyError。

  • 理想的是pd.read_csv(file, names=['name 1', 'name 2', ...]。奇怪的是,这重命名col 3“省略号”并没有达到预期的效果。

关于如何在熊猫中明智地做到这一点的任何想法?

1 个答案:

答案 0 :(得分:5)

试试这个:

df.columns = ['name 1', 'name 2'] + df.columns[2:].tolist()