我是编程新手,我的代码很基础。
想要将启用了我的宏的excel的特定列写入列表,并执行连接,替换等操作,并准备将数据集导入到应用程序中。无意更新Excel。
import pandas as pd
CL = pd.read_excel("C:\Users\sbaweja\PycharmProjects\Circuit_List.xlsm", sheet_name=0)
ID = CL['ID'].tolist()
OpCode = CL['Transformed Op Code'].tolist()
PriReview = CL['Circuit Priority Review'].tolist()
PairCirID = CL['Paired Circuit ID'].tolist()
RevID = CL['Reverse ID'].tolist()
BitRate = CL['Bitrate (Mb/s)'].tolist()
Function = CL['Function'].tolist()
SrcInterface = CL['Source Interface'].tolist()
DstInterface = CL['Destination Interface'].tolist()`
在迭代文件(约4000行)时使用Pandas读取xlsm文件时出现错误:“'ascii'编解码器无法对位置42处的字符u'\ xa0'进行编码:序数不在范围内(128 )”
因此应用了以下方法,错误不再存在,但请阅读使用defaultencoding是要遵循的最佳实践:
import sys
reload(sys)
sys.setdefaultencoding('utf8')
另一个面临的问题是创建字典切换器,列表中的关键字为Unicode类型,因此切换器不起作用。我的列表中确实有很多条目与switcher关键字匹配,但列表仍未更新。下面的代码段:
def Check(i):
switcher = {
'4-Wire*': 'AA-4Wire',
'AES3-4Wire': 'AES3-4Wire',
'Ethernet Fibre (SM)': 'ETH-SM',
'Ethernet RJ45': 'ETH-RJ45',
'Ethernet Fibre (MM)': 'ETH-MM',
'Half AES audio': 'AES3-HALF',
'HD-SDI (J2K)': 'SDI-J2K',
'HD-SDI (linear)': 'SDI - LIN',
'MADI Bearer': 'MADI',
'Mono Analogue Audio': 'AA-MONO',
'MPLS EVC': 'EVC',
'Stereo AES Audio': 'AES3-STEREO',
'Stereo Analogue Audio': 'AA-STEREO',
'STM-1 Fibre (MM1300)': 'STM-MM',
'STM-1 Fibre (SM)': 'STM-SM'
}
return i
for i in range(count):
SrcInterface[i] = Check(SrcInterface[i])
DstInterface[i] = Check(DstInterface[i])