我们可以在熊猫数据框中使用通配符吗

时间:2018-07-16 08:28:02

标签: python pandas

我下面的代码可以正常工作,但是在打印数据时会抛出一些UserWarning

import pandas as pd

pd.set_option('display.height', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', None)
pd.set_option('expand_frame_repr', True)

data = pd.read_csv('/home/karn/plura/Test/Python_Pnada/Cyber_July.csv', usecols=['Platform ID', 'Safe', 'Target system address', 'Failure reason'])
hostData = data[data['Platform ID'].str.startswith("CS-Unix-")][data['Safe'].str.startswith("CS-NOI-DEFAULT-UNIX-ROOT")] [['Platform ID', 'Safe', 'Target system address','Failure reason']]
hostData.reset_index(level=0, drop=True)
print(hostData)

下面是用户警告..

./CyberCSV.py:12: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  hostData  = data[data['Platform ID'].str.startswith("CS-Unix-")][data['Safe'].str.startswith("CS-NOI-DEFAULT-UNIX-ROOT")] [['Platform ID', 'Safe', 'Target system address','Failure reason']]

第二,有没有办法像我一样在数据框中使用通配符

data['Safe'].str.startswith("CDS-NOI-DEFAULT-UNIX-ROOT")我要在其中使用data['Safe'].str.startswith("CDS-*DEFAULT-UNIX-ROOT")

这可能吗。

1 个答案:

答案 0 :(得分:1)

您可以链接startswithendswith掩码,或使用contains-1-3 = bar 4-5 = foo 6 = bar 表示字符串的匹配开始,^表示任何字符串,{{ 1}}结束:

.*

或正则表达式:

$

示例

mask = data['Safe'].str.startswith("CDS") & data['Safe'].str.endswith("DEFAULT-UNIX-ROOT")