我想对熊猫数据框的一列中的每个值执行一项功能,然后用新值替换旧值。例如,遍历列中的每个值,然后将其替换为值加1。我一直在尝试类似下面的代码之类的事情,但它并不能替代值。
for row in df["src"]:
try:
df["src"]= (function)
except:
print ("Error")
下面是一列示例,所有值都是字符串。
src
59.166.0.0
59.166.0.7
175.45.176.2
.
.
.
59.166.0.4
答案 0 :(得分:3)
我相信您需要Series.apply
:
df = pd.DataFrame({'src':['192.168.0.1','192.168.0.10', '']})
print (df)
src
0 192.168.0.1
1 192.168.0.10
2
def func(x):
try:
x = int(ipaddress.ip_address(x))
return x
except:
return 0
df["src"] = df["src"].apply(func)
print (df)
src
0 3232235521
1 3232235530
2 0
答案 1 :(得分:1)
更多无熊猫解决方案:
def func(x):
#code here
return x
df["src"] = map(func,df['src'])
或者:
def func(x):
#code here
return x
df["src"] = [func(i) for i in df['src']]