将值从多列转换为二进制

时间:2019-05-16 12:21:01

标签: python pandas artificial-intelligence preprocessor

我目前正在尝试使用深度学习构建自己的IDS。但是我在对数据集进行预处理时遇到了一些麻烦。

我的目标是用其32位功能替换每个IP地址。 在以下链接上,您可以看到结果。 Target

我已经编写了代码,但是代码非常混乱,我想知道是否有一种方法可以更有效地执行此操作。

            def convert_to_binary(adresses):
                    result = pd.DataFrame()
                    values = []
                    for row, column in adresses.iterrows():
                        for element in range(len(column)):
                            value = bin(int(column[element]))[2:].zfill(8)
                            values.append([c for c in value])
                        values = [item for sublist in values for item in sublist]
                        result = result.append(pd.Series(values), ignore_index = True)
                        values = []
                    return result

# separate IP adresses
src = chunk.iloc[:, 0].str.split('.', expand = True)
source = convert_to_binary(src)

如您所见,我首先将IP地址分为四个部分。然后我计算每个元素的二进制值。

任何帮助将不胜感激。

0 个答案:

没有答案