熊猫一口气替换了两列中的星号

时间:2019-06-25 17:22:31

标签: python-3.x pandas

我有一个叫host.txt的名字,它进一步通过熊猫解析,并用当前时间戳再次保存。

下面的代码除了时间戳外可以正常工作

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)
#-----------------------------------------
MATCH_PATT = "AIX|CentOS|Fedora|RHEL|SunOS|SuSE|Ubuntu|(?<!\?)\?(?!\?)"
COLUMN_NAMES = ['Hostname', 'IP Address', 'Aux Site', 'OS Version']
df1 = pd.read_csv('/home/karn/plura/Test/Python_Panda/CyberArk/host.txt', delimiter = "\t", usecols=COLUMN_NAMES, encoding='cp1252',  dtype='unicode')
df2 = df1[df1['OS Version'].str.contains(MATCH_PATT,  na=False)][['Hostname', 'IP Address', 'Aux Site', 'OS Version']]
df2['Hostname'] = df2['Hostname'].str.replace("*", "")
df2['Aux Site'] = df2['Aux Site'].str.replace("*", "")
df2 = df2.iloc[:,0]
df2.to_csv('New_Surevy.txt.{}'.format(pd.datetime.today().strftime('%y%m%d')))

请告知如何获得它,任何线索将不胜感激。

所需:

如何一次性替换*df2['Hostname']中的df2['Aux Site']符号。

1 个答案:

答案 0 :(得分:1)

您可以使用regex = True这样的替换方法

df[['Hostname', 'Aux Site']] = df[['Hostname', 'Aux Site']].replace({'\*': ''}, regex=True)

请注意,这是“替换”方法,而不是“ str.replace”方法。