Python2.7_从xlsm中的列创建列表

时间:2019-02-27 15:50:16

标签: python pandas

我是编程新手,我的代码很基础。

想要将启用了我的宏的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])

0 个答案:

没有答案