我有一张看起来像这样的 table
"IP","DNS","NetBIOS","操作系统"
"x.x.x","名称","名称","Windows 2012"
"x.x.x","名称","名称","HP JetDirect"
我正在尝试使用 Pandas 找到一种方法,让代码在操作系统列中查找,如果它等于“Windows”(“Windows”之后的任何内容都无关紧要),它将打印“Workstation”一词,如果它还有什么它会打印“打印机”
我还有这行代码可以插入新列。但是我需要它根据上面的问题知道要打印什么值
df.insert(4,'Report Category',' ')
最佳答案
您可以使用 numpy.where
与 str.contains
:
print (df['OS'].str.contains('Windows'))
0 True
1 False
Name: OS, dtype: bool
#for last column
df['Report Category'] = np.where(df['OS'].str.contains('Windows'), 'Workstation', 'Printer')
print (df)
IP DNS NetBIOS OS Report Category
0 x.x.x name name Windows 2012 Workstation
1 x.x.x name name HP JetDirect Printer
第 4
列使用 insert
:
df.insert(4,'Report Category', np.where(df['OS'].str.contains('Windows'),
'Workstation', 'Printer'))
print (df)
IP DNS NetBIOS OS Report Category
0 x.x.x name name Windows 2012 Workstation
1 x.x.x name name HP JetDirect Printer
关于Python Pandas 如果 D 列中的值等于 Windows Print Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43763117/