扩展类似 excel 列的值的范围
Posted
技术标签:
【中文标题】扩展类似 excel 列的值的范围【英文标题】:Expand range of excel-column-like values 【发布时间】:2022-01-23 23:58:01 【问题描述】:这是对my previous question 的补充。
是否可以进一步对其进行修改以包含超出Z
的字母,就像 Excel 列一样?
例如:AC
到 AE
将是 AC AD AE
。
【问题讨论】:
使用外部模块可以吗? 是的,我真的不知道那是什么意思,但如果你认为我能够运行它,那当然! 现在完成。检查答案;) 事实证明,您不需要任何外部模块。 @richardec 非常感谢。非常感谢您抽出时间来帮助我! 【参考方案1】:这可以通过我从 javascript 翻译的一些函数来完成(来自 here):
df['Finish'] = df.apply(lambda x: ' '.join(intToExcelCol(c) for c in range(excelColToInt(x['Letter start']), excelColToInt(x['Letter finish']) + 1)), axis=1)
输出:
Letter start Letter finish Finish
0 AA AD AA AB AC AD
1 AC AE AC AD AE
2 AK AM AK AL AM
您需要的功能如下:
chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
clen = len(chars)
def intToExcelCol(number):
colName = ''
dividend = np.floor(abs(number))
rest = 0
while True:
if dividend <= 0:
break
rest = int((dividend - 1) % clen)
colName = chars[rest] + colName
dividend = int((dividend - rest) / clen)
return colName
def excelColToInt(colName):
digits = colName.upper()
number = 0
for i in range(len(digits)):
number += (chars.index(digits[i]) + 1) * pow(clen, len(digits) - i - 1)
return number
【讨论】:
以上是关于扩展类似 excel 列的值的范围的主要内容,如果未能解决你的问题,请参考以下文章