首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -数据框,添加列

Python -数据框,添加列
EN

Stack Overflow用户
提问于 2017-10-07 14:00:32
回答 2查看 33关注 0票数 1

我有一个大约有100行的数据框。我想为这些行中的每一行分配一个唯一的编号(不是从索引,而是基于业务逻辑的编号)。有一种方法可以分配唯一的键(数字)。我无法单独赋值。需要帮助吗?

代码语言:javascript
复制
Data Frame data is as follows

customer_key
825486
457347
641996
1006860
1078894

分配唯一ID的方法是

代码语言:javascript
复制
def getuniqid(data):
    from time import time
    skey_list = []
    for row in data.count()-1:
            skey_list.append(int(time()*10000000))
            return skey_list

我希望能够为所有单独的行分配唯一的编号(生成唯一的编号背后有业务逻辑,因为我正在做这个简单的int(time)

任何帮助都是非常感谢的。

谢谢

巴拉

EN

回答 2

Stack Overflow用户

发布于 2017-10-07 14:09:13

我认为你需要由df的长度创建的按范围循环,然后在for循环之外获得return

代码语言:javascript
复制
def getuniqid(data):
    from time import time
    skey_list = []
    for row in range(len(data)):
            skey_list.append(int(time()*10000000))
    return skey_list

data['new'] = getuniqid(data)

或者可能是由DataFrame的某一列进行循环

代码语言:javascript
复制
def getuniqid(data):
    from time import time
    skey_list = []
    for row in data['customer_key']:
            skey_list.append(int(time()*10000000))
    return skey_list

data['new'] = getuniqid(data)

代码语言:javascript
复制
print (data)
   customer_key                new
0        825486  15073574836092810
1        457347  15073574836092810
2        641996  15073574836092810
3       1006860  15073574836092810
4       1078894  15073574836092810
票数 2
EN

Stack Overflow用户

发布于 2017-10-07 17:25:46

可能是这样的:

代码语言:javascript
复制
import time
import pandas as pd
from io import StringIO

string = u"""customer_key
825486
457347
641996
1006860
1078894"""

df = pd.read_csv(StringIO(string))

millisecondsnow = int(round(time.time() * 1000))
df["key"] = [millisecondsnow + i for i in range(len(df))]

输出:

代码语言:javascript
复制
    customer_key    key
0   825486  1507368278082
1   457347  1507368278083
2   641996  1507368278084
3   1006860 1507368278085
4   1078894 1507368278086

或者来自一个包含key-gen的库:

代码语言:javascript
复制
import uuid
import pandas as pd

string = u"""customer_key
825486
457347
641996
1006860
1078894"""

df = pd.read_csv(StringIO(string))

df["key"] = [uuid.uuid4() for _ in range(len(df))]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46617163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档