对数据框中的值执行功能并替换

时间:2018-10-01 05:07:29

标签: python pandas dataframe

我想对熊猫数据框的一列中的每个值执行一项功能,然后用新值替换旧值。例如,遍历列中的每个值,然后将其替换为值加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

2 个答案:

答案 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']]