Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数据帧/系列应用于NetAddress EUI构造函数_Python_Pandas_Mac Address - Fatal编程技术网

Python 将数据帧/系列应用于NetAddress EUI构造函数

Python 将数据帧/系列应用于NetAddress EUI构造函数,python,pandas,mac-address,Python,Pandas,Mac Address,我有一个Mac地址的数据帧,需要转换。我首先执行以下操作以清除任何nan: df = df[pd.notnull(df["MacAddr"])]["MacAddr"] # avoid null values being passed to netaddr …然后我想解析成EUI构造函数,如下所示: from netaddr import EUI, mac_bare mac = EUI(df) mac.dialect = mac_bare 但这不起作用

我有一个Mac地址的数据帧,需要转换。我首先执行以下操作以清除任何
nan

df = df[pd.notnull(df["MacAddr"])]["MacAddr"] # avoid null values being passed to netaddr
…然后我想解析成
EUI
构造函数,如下所示:

from netaddr import EUI, mac_bare

mac = EUI(df)
mac.dialect = mac_bare
但这不起作用,因为EUI需要的是字符串,而不是熊猫系列。有没有办法避免这种情况

作为一个错误,我得到以下信息:

Name: MacAddr, Length: 26953, dtype: object is not str() or unicode()!

从序列中创建一个列表,然后将元素连接到一个字符串中

 ','.join(df[pd.notnull(df["MacAddr"])]["MacAddr"].to_list())

由于EUI构造函数目前无法解析数据帧/序列,因此我为
df.apply()
创建了一个函数,如下所示:

def main(self):
    def _eui_mac_bare_func(x):
        mac = EUI(x)
        mac.dialect = mac_bare
        return mac

series = df[pd.notnull(df["MacAddr"])]["MacAddr"] # avoid null values being passed to netaddr
new_series = series.apply(_eui_mac_bare_func) # apply function to every row
df = df.join(new_series.rename("Norm_MacAddr")) # join df and series on corresponding indices

很遗憾,EUI构造函数似乎需要某种格式,因此长字符串不兼容。不管怎样,谢谢。如果你还没有弄明白,请发布格式或预期的工作示例?