Answer a question

I'm using flask and getting error at set_values. I'm reading the input from html and passing it to the code

@app.route('/home', methods=['POST'])
def first():
    source = request.files['first']
    destination = request.files['second']
    df = pd.read_csv(source)
    df1 = pd.read_csv(destination)
    val1 = int(request.form['val1'])
    val2 = int(request.form['val2'])
    val3 = int(request.form['val3'])
    target = request.form['str']
    df2 = df[df.columns[val2]]
    count = 0
    for j in df[df.columns[val1]]:
        x = df1.loc[df1[df1.columns[val3]] == j].index.values
        for i in x:
            df1.set_value(i, target, df2[count])
        count = count + 1
    df1.to_csv('result.csv', index=False)

Answers

Check your pandas version.

df.set_value() is deprecated since pandas version 0.21.0

Instead use df.at

import pandas as pd

df = pd.DataFrame({"A":[1, 5, 3, 4, 2], 
                   "B":[3, 2, 4, 3, 4],  
                   "C":[2, 2, 7, 3, 4], 
                   "D":[4, 3, 6, 12, 7]}) 

df.at[2,'B']=100

   A    B  C   D
0  1    3  2   4
1  5    2  2   3
2  3  100  7   6
3  4    3  3  12
4  2    4  4   7
Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐