Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在数组的元素中查找第n个匹配项,然后在python中将第n个匹配项后的数字替换为零_Python_Arrays_Numpy_Csv_Import - Fatal编程技术网

如何在数组的元素中查找第n个匹配项,然后在python中将第n个匹配项后的数字替换为零

如何在数组的元素中查找第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.

在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.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
功能将其应用于系列的每一行。

我的答案是否回答了您的问题?