[英]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.