我有一个 pandas 数据框,我需要根据前两个字母有条件地更新值。该模式很简单,下面的代码也可以工作,但感觉不像Python。我需要将其扩展到其他字母(至少 11-19/AJ),虽然我可以添加额外的行,但我真的很想以正确的方式执行此操作。现有代码如下
df['REFERENCE_ID'] = df['PRECERT_ID'].astype(str)
df.loc[df['REFERENCE_ID'].str.startswith('11'), 'REFERENCE_ID'] = 'A' + df['PRECERT_ID'].str[-7:]
df.loc[df['REFERENCE_ID'].str.startswith('12'), 'REFERENCE_ID'] = 'B' + df['PRECERT_ID'].str[-7:]
df.loc[df['REFERENCE_ID'].str.startswith('13'), 'REFERENCE_ID'] = 'C' + df['PRECERT_ID'].str[-7:]
df.loc[df['REFERENCE_ID'].str.startswith('14'), 'REFERENCE_ID'] = 'D' + df['PRECERT_ID'].str[-7:]
df.loc[df['REFERENCE_ID'].str.startswith('15'), 'REFERENCE_ID'] = 'E' + df['PRECERT_ID'].str[-7:]
我想我也许可以使用字母列表,比如
letters = list(string.ascii_uppercase)
但我对数据帧(以及一般的Python)很陌生,并且无法弄清楚获得相当于以下数据帧的语法
letters = list(string.ascii_uppercase)
text = '1523456789'
first = int(text[:2])
text = letters[first-11] + text[-7:]
我无法找到解决此问题的方法,但如果有任何帮助或类似问题的链接(如果存在),我将不胜感激。谢谢。
慕丝7291255
千巷猫影
相关分类