下面我用熊猫编写了代码,该代码从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)