Python 无法删除数据帧中的部分字符串

Python 无法删除数据帧中的部分字符串,python,pandas,Python,Pandas,我使用KDDCup来训练神经网络,但我对数据的布局感到相当困惑。当我使用scikit学习数据集功能下载数据集时: data = datasets.fetch_kddcup99(return_X_y = True, ) df = pd.DataFrame(np.column_stack((data[0], data[1]))) 然后运行命令df.head(),返回以下信息: 0 1 2 3 4 5 ... 36 37 38

我使用KDDCup来训练神经网络,但我对数据的布局感到相当困惑。当我使用scikit学习数据集功能下载数据集时:

data = datasets.fetch_kddcup99(return_X_y = True, )
df = pd.DataFrame(np.column_stack((data[0], data[1])))
然后运行命令df.head(),返回以下信息:

  0       1        2      3    4     5      ...     36 37 38 39 40          41
0  0  b'tcp'  b'http'  b'SF'  181  5450     ...      0  0  0  0  0  b'normal.'
1  0  b'tcp'  b'http'  b'SF'  239   486     ...      0  0  0  0  0  b'normal.'
2  0  b'tcp'  b'http'  b'SF'  235  1337     ...      0  0  0  0  0  b'normal.'
3  0  b'tcp'  b'http'  b'SF'  219  1337     ...      0  0  0  0  0  b'normal.'
4  0  b'tcp'  b'http'  b'SF'  217  2032     ...      0  0  0  0  0  b'normal.'

[5 rows x 42 columns]
我试图将输出类(元素41)更改为二进制,具体取决于标签是什么(如果正常,则为0,否则为1)。现在证明这很困难,因为数据类型是object,每当我执行
df.str.contains
,它都会将所有样本(50万个)转换为
NaN

我原以为解决这个问题的一个办法是什么都不做来取代
b'
,但我无法成功地做到这一点


我有点困惑于如何操作这个数据帧,其中所有列都是类型
Object
,甚至是标量值。

可以使用编码来移动字符

Python 2中忽略了前缀“b”或“b”;它表示在Python3中,文本应该变成字节文本(例如,当代码自动转换为2to3时)。“u”或“b”前缀后面可以跟“r”前缀


b
是第41列字符串的一部分吗?是的,b似乎在每个字符串文本的前面,然后将数据类型转换为“Object”。好的,我明白了。我可以运行df[41].apply(lambda x:x.decode('utf-8'),这样可以正确地将数据显示为正常数据。我可以调整您的答案并删除所有字节文字,方法是首先定义所有包含它们的列,然后循环使用它们并应用decode函数。然后,我通过重试
str.contains
函数来测试结果,该函数正确地将我的输出列行设置为1和0。谢谢你的帮助。欢迎:-)@JohnathanBrown
stri="Response from server"    
c.send(stri.encode())

df[41].apply(lambda x: x.decode('utf-8'))