我要做的第一件事是從用戶那里獲取四個數字并將它們放在第一列中。(例如:10,30,60,80)然后我需要創建另一個列(第二個),除了第一列列,第二列的行應如下所示。
10 Values should range from 1-2
30 values should range from 3-4
60 values should range from 5-8
80 values should range from 3-8
基于此,我想生成1000資料集并將它們保存為單個檔案。預期輸出應該是相似的
10 1.2 1.5 ...
30 3.8 3.4 ...
60 5.8 5.2 ...
80 3.8 4.2 ...
腳本:
import numpy as np
import random
inp_data=[10, 30, 60, 80]
random_data=np.random.uniform(1,2)
我被困在這里,請幫助專家。在此先感謝。
uj5u.com熱心網友回復:
你可以用 pandas 和numpy做到這一點:
import pandas as pd
import numpy as np
inp_data=[10, 30, 60, 80]
# mapping dict for the ranges
ranges = {10: [1,2],
30: [3,4],
60: [5,8],
80: [3,8]
}
# initialize random generator
rng = np.random.default_rng()
# load input data as dataframe
df = pd.DataFrame(inp_data, columns=['inp_data'])
# apply random generator to input data column
random_df = df['inp_data'].apply(lambda x: rng.uniform(ranges[x][0], ranges[x][1], size=(1000))).apply(pd.Series)
random_df[:] = np.sort(random_df.values, axis=1) # this sorts the row, set axis=0 to sort column-wise
# join generated data with df and save as csv
df = df.join(random_df.round(3))
df.to_csv('output.csv', index=False, header=False)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/487606.html
