我正在询问如何使用逗号分隔符有效地将列标题分配给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 并且我使用相同的代码,它将返回错误。
值错误:长度不匹配:预期轴有 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']
并不难,但是如果我每天多次这样做,它会变得非常低效。
使用列表推导,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
或类似的 constans。