如何从熊猫数据框中的列下获取每个名称的计数

时间:2018-07-16 11:18:16

标签: python-3.x pandas pandas-groupby

下面我用熊猫编写了代码,该代码从CSV中提取值并打印行和列。如何从熊猫数据框中获取和打印唯一值计数。

import csv
import pandas as pd

##### Python pandas, widen output display to see more columns. ####
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)

######## PANDAS Extraction

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.contains("^CS-.*DEFAULT-UNIX-ROOT$")] [['Platform ID', 'Safe', 'Target system address','Failure reason']]

hostData.reset_index(level=0, drop=True)
print(hostData)
#print(hostData.groupby('Safe').first())

输出数据:

                     Platform ID                         Safe   Target system address                                     Failure reason
1000   CS-Unix-RootAccounts-SSH     CS-PAR-DEFAULT-UNIX-ROOT                  jjudet  First login - Unable to connect to machine. Ch...
1003   CS-Unix-RootAccounts-SSH     CS-MOS-DEFAULT-UNIX-ROOT                  tts126  First login - Unable to connect to machine. Ch...
1005   CS-Unix-RootAccounts-SSH     CS-PAR-DEFAULT-UNIX-ROOT                  dccamus  First login - Unable to connect to machine. Ch...

在上面的输出数据中,我正在寻找第三列下的数据,该列是安全,并且在其下方具有不同的安全名称 < strong>(例如:CS-PAR-DEFAULT-UNIX-ROOT)。从某种意义上说,我希望获得每个安全名称的计数,

在上面的数据集中,因为我们两次出现安全名称 CS-PAR-DEFAULT-UNIX-ROOT,因此,它应如下图所示。

Safe                count

CS-PAR-DEFAULT-UNIX-ROOT    2
CS-MOS-DEFAULT-UNIX-ROOT    1

注意:该引用重复比较两列之间的值,而我不是在寻找它,而只是计算Safe列下每个安全名称的迭代次数。

  

谢谢大家的指点并使其重复,但是,我明白了   我在下一版中的答案,只是在这里汇总答案   因此,其他人可能正在寻找相同的东西。

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.contains("^CS-.*DEFAULT-UNIX-ROOT$")] [['Platform ID', 'Safe', 'Target system address','Failure reason']]

safeCount = hostData.Safe.value_counts()

hostData.reset_index(level=0, drop=True)

0 个答案:

没有答案