首页 > 解决方案 > 使用python更新数据库特定列中的值

问题描述

id在一个名为 _newdata 的数据框中调用了一个 col,它看起来像这样。请注意,这是列中值的一部分,而不是全部。

1
1
1
2
2
2
2
2
4
4
4
4
4
5
5
5
5
7
7
7
7
7
8
8
8
8
10
10
10

我想要做的是使用值重命名“id”,使其处于运行数字中。这意味着我希望它看起来像这样

1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
5
5
5
5
5
6
6
6
6
7
7
7

我尝试使用它,但它似乎没有对文件做任何事情。有人可以告诉我哪里出错或建议一种方法来做我想做的事吗?

count = 1 #values start at 1
    for i, row in _newdata.iterrows():
        if row['id']==count or row['id']==count+1:
            pass

        else:
            count+=1
            row['id']=count

标签: pythonpython-2.7pandasdataframe

解决方案


您可以使用密集 rank()

df['id'] = df['id'].rank(method='dense').astype(int)

推荐阅读