Python Pandas 如果 D 列中的值等于 Windows Print Server

标签 python python-3.x pandas

我有一张看起来像这样的 table
"IP","DNS","NetBIOS","操作系统"
"x.x.x","名称","名称","Windows 2012"
"x.x.x","名称","名称","HP JetDirect"

我正在尝试使用 Pandas 找到一种方法,让代码在操作系统列中查找,如果它等于“Windows”(“Windows”之后的任何内容都无关紧要),它将打印“Workstation”一词,如果它还有什么它会打印“打印机”

我还有这行代码可以插入新列。但是我需要它根据上面的问题知道要打印什么值

df.insert(4,'Report Category',' ')

最佳答案

您可以使用 numpy.wherestr.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/

相关文章:

python - 迭代多个查询并将其存储在 pyspark 数据框中

python - redis python scan_iter 给出不同的键

python - Python函数的Dask Apply

python - 如何以这种格式将字典转换为数据框?

python - 按列表排序索引 - Python Pandas

python - 将一列空列表添加到 DataFrame

Python:使用 Tkinter 动态更改条目颜色

javascript - 如何在 JavaScript 文件中使用 Django 变量?

python - 如何修改 pandas 数据框的一个 "cell"中的值?

python - Excel 编码影响 pandas 过滤