有效地将列标题分配给csv文件

时间:2018-08-22 03:22:21

标签: python pandas csv dataframe

我正在询问如何使用逗号分隔符将列标题有效分配给CSV文件。现在,一旦我知道有多少列,就可以手动分配标题。问题是,列数随文件的不同而不同。

因此下面的第一个Dataframe有3列。我通过以下内容分配的。

import pandas as pd

d = ({
    'Col 1' : ['X','Y'],  
    'Col 2' : ['A','B'], 
    'Col 3' : ['C','D'],        
    })

df = pd.DataFrame(data=d)

df.columns = ['A','B','C']

如果我具有以下df并使用相同的代码,它将返回错误。

  

ValueError:长度不匹配:预期轴有2个元素,新值有3个元素

d = ({
    'Col 1' : ['X','Y'],  
    'Col 2' : ['A','B'],    
     })

df = pd.DataFrame(data=d)

df.columns = ['A','B','C']

我理解这是因为只有2列。我在问关于有效分配标头A-n的问题。

我知道将df.columns更改为['A','B']并不难,但是如果我一天多次执行此操作,效率会很低。

1 个答案:

答案 0 :(得分:1)

使用列表理解string内置模块和字典d的长度:

df.columns = ([x for x in string.ascii_uppercase if ord(x) < ord("A") + len(d)])

string.ascii_uppercase'ABCDEFGHIJKLMNOPQRSTUVWXYZ'字符串。

如果需要超过26个列标题,则也可以使用string.ascii_letters或类似的常量。