Python 使用DataFrame将IP地址转换为十进制时split()出错 将IP地址转换为十进制时:
我得到了这个错误: “Series”对象没有属性“split” 有什么问题吗?用于Python 使用DataFrame将IP地址转换为十进制时split()出错 将IP地址转换为十进制时:,python,pandas,dataframe,ip-address,Python,Pandas,Dataframe,Ip Address,我得到了这个错误: “Series”对象没有属性“split” 有什么问题吗?用于Dataframe,然后通过将所有列转换为int。上次调用函数: data2 = pd.Series(['85.237.234.182','95.237.234.187','85.237.134.187','85.207.234.187']) print (data2) 0 85.237.234.182 1 95.237.234.187 2 85.237.134.187 3 85.207.2
Dataframe
,然后通过将所有列转换为int
。上次调用函数:
data2 = pd.Series(['85.237.234.182','95.237.234.187','85.237.134.187','85.207.234.187'])
print (data2)
0 85.237.234.182
1 95.237.234.187
2 85.237.134.187
3 85.207.234.187
dtype: object
def ip2Int(ip):
o = ip.str.split('.', expand=True).astype(int)
res = (16777216 * o[0]) + (65536 * o[1]) + (256 * o[2]) + o[3]
return res
s = ip2Int(data2)
print (s)
0 1441655478
1 1609427643
2 1441629883
3 1439689403
dtype: int32
intIP = ip2Int(data2).tolist()
print (intIP)
[1441655478, 1609427643, 1441629883, 1439689403]
如果需要返回string
s,请将强制转换添加到str
:
def ip2Int(ip):
o = ip.str.split('.', expand=True).astype(int)
res = (16777216 * o[0]) + (65536 * o[1]) + (256 * o[2]) + o[3]
return res.astype(str)
s = ip2Int(data2)
print (s)
0 1441655478
1 1609427643
2 1441629883
3 1439689403
dtype: object
intIP = ip2Int(data2).tolist()
print (intIP)
['1441655478', '1609427643', '1441629883', '1439689403']
如果data2
是DataFrame
并且需要新列:
def ip2Int(ip):
o = ip.str.split('.', expand=True).astype(int)
res = (16777216 * o[0]) + (65536 * o[1]) + (256 * o[2]) + o[3]
return res
data2['intIP'] = ip2Int(data2['col'])
print (data2)
col intIP
0 85.237.234.182 1441655478
1 95.237.234.187 1609427643
2 85.237.134.187 1441629883
3 85.207.234.187 1439689403
非常感谢~非常有帮助!我很高兴能帮上忙。如果我的答案有用,别忘了-点击复选标记(
✓答案旁边的代码>),将其从灰显切换为填充。谢谢
def ip2Int(ip):
o = ip.str.split('.', expand=True).astype(int)
res = (16777216 * o[0]) + (65536 * o[1]) + (256 * o[2]) + o[3]
return res
data2['intIP'] = ip2Int(data2['col'])
print (data2)
col intIP
0 85.237.234.182 1441655478
1 95.237.234.187 1609427643
2 85.237.134.187 1441629883
3 85.207.234.187 1439689403