nam*_*tha 4 python scala data-generation
我有一个由 100k 个唯一数据记录组成的数据集,为了对代码进行基准测试,我需要对具有 500 万个唯一记录的数据进行测试,我不想生成随机数据。我想使用我拥有的 100k 数据记录作为基础数据集,并生成与它类似的剩余数据,并为某些列提供唯一值,如何使用 python 或 Scala 来做到这一点?
这是示例数据
latitude longitude step count
25.696395 -80.297496 1 1
25.699544 -80.297055 1 1
25.698612 -80.292015 1 1
25.939942 -80.341607 1 1
25.939221 -80.349899 1 1
25.944992 -80.346589 1 1
27.938951 -82.492018 1 1
27.944691 -82.48961 1 3
28.355484 -81.55574 1 1
Run Code Online (Sandbox Code Playgroud)
每对纬度和经度在生成的数据中应该是唯一的,我也应该能够为这些列设置最小值和最大值
使用R可以轻松生成符合正态分布的数据,可以按照以下步骤操作
#Read the data into a dataframe
library(data.table)
data = data = fread("data.csv", sep=",", select = c("latitude", "longitude"))
#Remove duplicate and null values
df = data.frame("Lat"=data$"latitude", "Lon"=data$"longitude")
df1 = unique(df[1:2])
df2 <- na.omit(df1)
#Determine the mean and standard deviation of latitude and longitude values
meanLat = mean(df2$Lat)
meanLon = mean(df2$Lon)
sdLat = sd(df2$Lat)
sdLon = sd(df2$Lon)
#Use Normal distribution to generate new data of 1 million records
newData = list()
newData$Lat = sapply(rep(0, 1000000), function(x) (sum(runif(12))-6) * sdLat + meanLat)
newData$Lon = sapply(rep(0, 1000000), function(x) (sum(runif(12))-6) * sdLon + meanLon)
finalData = rbind(df2,newData)
now final data contains both old records and new records
Run Code Online (Sandbox Code Playgroud)
将 FinalData 数据帧写入 CSV 文件,您可以从 Scala 或 python 中读取它
| 归档时间: |
|
| 查看次数: |
4820 次 |
| 最近记录: |