我正在询问如何使用逗号分隔符将列标题有效分配给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']
并不难,但是如果我一天多次执行此操作,效率会很低。
答案 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
或类似的常量。