如何在数组的元素中查找第n个匹配项,然后在python中将第n个匹配项后的数字替换为零
在Python中,我导入一个.csv文件,在.csv中获取“IpAddress”列,然后将该列放入数组中。 现在我想编辑数组中的每个元素,将最后一个八位字节中的数字替换为零,从而生成一个新数组 这是我当前的输出:如何在数组的元素中查找第n个匹配项,然后在python中将第n个匹配项后的数字替换为零,python,arrays,numpy,csv,import,Python,Arrays,Numpy,Csv,Import,在Python中,我导入一个.csv文件,在.csv中获取“IpAddress”列,然后将该列放入数组中。 现在我想编辑数组中的每个元素,将最后一个八位字节中的数字替换为零,从而生成一个新数组 这是我当前的输出: ['10.232.4.174' '10.18.8.174' '10.18.8.195' '10.18.4.86' '10.18.4.90' '10.18.4.51' '10.18.4.87'] ['10.232.4.0' '10.18.8.0' '10.18.8.0' '10.18.
['10.232.4.174' '10.18.8.174' '10.18.8.195' '10.18.4.86' '10.18.4.90' '10.18.4.51' '10.18.4.87']
['10.232.4.0' '10.18.8.0' '10.18.8.0' '10.18.4.0' '10.18.4.0' '10.18.4.0' '10.18.4.0']
import pandas as pd
data = pd.read_csv (r'C:\script\Result.csv')
data.head()
newAddress =data['IpAddress'].values
我的目标是输出:
['10.232.4.174' '10.18.8.174' '10.18.8.195' '10.18.4.86' '10.18.4.90' '10.18.4.51' '10.18.4.87']
['10.232.4.0' '10.18.8.0' '10.18.8.0' '10.18.4.0' '10.18.4.0' '10.18.4.0' '10.18.4.0']
import pandas as pd
data = pd.read_csv (r'C:\script\Result.csv')
data.head()
newAddress =data['IpAddress'].values
使用以下条件可以对单个字符串进行更改:
.join(ip.split('.')[:-1]+[“0”])和
ip=ip[:ip.rfind('.')+1]+'0'
但是split和rfind()不能用于此数组
如何获取单个字符串的条件,将其应用于整个数组并输出新数组
这里我导入文件,然后将其放入和数组:
['10.232.4.174' '10.18.8.174' '10.18.8.195' '10.18.4.86' '10.18.4.90' '10.18.4.51' '10.18.4.87']
['10.232.4.0' '10.18.8.0' '10.18.8.0' '10.18.4.0' '10.18.4.0' '10.18.4.0' '10.18.4.0']
import pandas as pd
data = pd.read_csv (r'C:\script\Result.csv')
data.head()
newAddress =data['IpAddress'].values
谢谢。您可以使用正则表达式。例如:
将熊猫作为pd导入
进口稀土
输入=['10.232.4.174','10.18.8.174','10.18.8.195','10.18.4.86','10.18.4.90','10.18.4.51','10.18.4.87']
data=pd.DataFrame({'IpAddress':输入})
sub_regex=re.compile(“(\d{1,3}\.\d{1,3}\.\d{1,3}\)(\d{1,3})”
数据['IpAddress'].apply(lambda x:sub\u regex.sub(r'\g0',x))
输出:
0 10.232.4.0
1 10.18.8.0
2 10.18.8.0
3 10.18.4.0
4 10.18.4.0
5 10.18.4.0
6 10.18.4.0
Name: IpAddress, dtype: object
这里,正则表达式将IP地址分为两组,一组包含前3个数字,另一组包含最后一个数字。然后,它使用替换命令并放置第一个组
\g
,然后放置零。您可以使用apply
功能将其应用于系列的每一行。我的答案是否回答了您的问题?