如何在 Pandas 中获取数据框 python3 中特定列的用户输入
How to get the user Input in Pandas for a particular column from the dataframe python3
我正在使用 PANDAS Dataframe 从 CSV 文件中获取数据并选择工作正常的所需列数据。但是,在 hostData
Dataframe 中,我特别寻找 (data['Safe']=='KDS-PDC-DEFAULT-UNIX-ROOT')
部分,因为我有多个保险箱,正如我在下面提到的,文档字符串中的 CyberArk Safes
因此我很期待而不是手动将安全名称放在它可能要求用户输入的代码上。
在要求用户输入提供安全名称时,如果它可以显示文档字符串中的当前安全名称。
#!/grid/common/pkgs/python/v3.6.1/bin/python3
from __future__ import print_function
from signal import signal, SIGPIPE, SIG_DFL
signal(SIGPIPE,SIG_DFL)
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)
############# CyberArk Safes ################
'''
KDS-KDC-DEFAULT-UNIX-ROOT
KDS-PDC-DEFAULT-UNIX-ROOT
KDS-CDC-DEFAULT-UNIX-ROOT
'''
################# PANDAS Extraction ###########
data = pd.read_csv('/home/karn/plura/Test/Python_Panda/InventoryReports06.csv', usecols=['Platform ID', 'Safe', 'Target system address', 'Failure reason'])
hostData = data[(data['Safe']=='DC') | (data['Safe']=='KDS-PDC-DEFAULT-UNIX-ROOT')][['Safe', 'Target system address']]
hostData.reset_index(level=0, drop=True)
预期输出:
$ python CyberSafe.py
The Current SafeName Available are:
KDS-KDC-DEFAULT-UNIX-ROOT
KDS-PDC-DEFAULT-UNIX-ROOT
KDS-CDC-DEFAULT-UNIX-ROOT
Please Enter the SafeName:
任何帮助或建议将不胜感激。
- 为了显示候选人,创建一个函数(例如
print_candidates()
)来显示文档字符串。
- 要获取用户输入,请使用
input()
并将其存储到 SafeName
并进一步使用它来创建掩码以过滤数据帧。
因此,您的代码的后半部分将如下所示:
def print_candidates():
'''
KDS-KDC-DEFAULT-UNIX-ROOT
KDS-PDC-DEFAULT-UNIX-ROOT
KDS-CDC-DEFAULT-UNIX-ROOT
'''
print("The Current SafeName Available are:")
print(print_candidates.__doc__)
print_candidates()
################# PANDAS Extraction ###########
data = pd.read_csv('/home/karn/plura/Test/Python_Panda/InventoryReports06.csv', usecols=['Platform ID', 'Safe', 'Target system address', 'Failure reason'])
SafeName = str(input("Please Enter the SafeName:"))
hostData = data.loc[(data['Safe']=='DC') | (data['Safe']==SafeName)][['Safe', 'Target system address']]
hostData = hostData.reset_index(drop=True)
我正在使用 PANDAS Dataframe 从 CSV 文件中获取数据并选择工作正常的所需列数据。但是,在 hostData
Dataframe 中,我特别寻找 (data['Safe']=='KDS-PDC-DEFAULT-UNIX-ROOT')
部分,因为我有多个保险箱,正如我在下面提到的,文档字符串中的 CyberArk Safes
因此我很期待而不是手动将安全名称放在它可能要求用户输入的代码上。
在要求用户输入提供安全名称时,如果它可以显示文档字符串中的当前安全名称。
#!/grid/common/pkgs/python/v3.6.1/bin/python3
from __future__ import print_function
from signal import signal, SIGPIPE, SIG_DFL
signal(SIGPIPE,SIG_DFL)
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)
############# CyberArk Safes ################
'''
KDS-KDC-DEFAULT-UNIX-ROOT
KDS-PDC-DEFAULT-UNIX-ROOT
KDS-CDC-DEFAULT-UNIX-ROOT
'''
################# PANDAS Extraction ###########
data = pd.read_csv('/home/karn/plura/Test/Python_Panda/InventoryReports06.csv', usecols=['Platform ID', 'Safe', 'Target system address', 'Failure reason'])
hostData = data[(data['Safe']=='DC') | (data['Safe']=='KDS-PDC-DEFAULT-UNIX-ROOT')][['Safe', 'Target system address']]
hostData.reset_index(level=0, drop=True)
预期输出:
$ python CyberSafe.py
The Current SafeName Available are:
KDS-KDC-DEFAULT-UNIX-ROOT
KDS-PDC-DEFAULT-UNIX-ROOT
KDS-CDC-DEFAULT-UNIX-ROOT
Please Enter the SafeName:
任何帮助或建议将不胜感激。
- 为了显示候选人,创建一个函数(例如
print_candidates()
)来显示文档字符串。 - 要获取用户输入,请使用
input()
并将其存储到SafeName
并进一步使用它来创建掩码以过滤数据帧。
因此,您的代码的后半部分将如下所示:
def print_candidates():
'''
KDS-KDC-DEFAULT-UNIX-ROOT
KDS-PDC-DEFAULT-UNIX-ROOT
KDS-CDC-DEFAULT-UNIX-ROOT
'''
print("The Current SafeName Available are:")
print(print_candidates.__doc__)
print_candidates()
################# PANDAS Extraction ###########
data = pd.read_csv('/home/karn/plura/Test/Python_Panda/InventoryReports06.csv', usecols=['Platform ID', 'Safe', 'Target system address', 'Failure reason'])
SafeName = str(input("Please Enter the SafeName:"))
hostData = data.loc[(data['Safe']=='DC') | (data['Safe']==SafeName)][['Safe', 'Target system address']]
hostData = hostData.reset_index(drop=True)