簡體   English   中英

Python - 數據框,添加一列

[英]Python - Data Frames, adding a column

我有一個有100行的數據框。 我想為這些行中的每一行分配一個唯一的編號(不是索引,而是基於業務邏輯的編號)。 有一種方法可以分配唯一鍵(數字)。 我無法單獨分配值。 需要一些幫助

Data Frame data is as follows

customer_key
825486
457347
641996
1006860
1078894

分配唯一ID的方法是

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(時間)

任何幫助表示贊賞。

謝謝

巴拉

我認為你需要按照df的長度創建的范圍循環,然后在for循環之外return

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的某些列DataFrame

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)

print (data)
   customer_key                new
0        825486  15073574836092810
1        457347  15073574836092810
2        641996  15073574836092810
3       1006860  15073574836092810
4       1078894  15073574836092810

也許是這樣的:

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))]

輸出:

    customer_key    key
0   825486  1507368278082
1   457347  1507368278083
2   641996  1507368278084
3   1006860 1507368278085
4   1078894 1507368278086

或者來自具有密鑰的圖書館:

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))]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM