Python 使用DataFrame将IP地址转换为十进制时split()出错 将IP地址转换为十进制时:

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

我得到了这个错误:

“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.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