亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在具有特定條件的熊貓數據框中添加隨機值

如何在具有特定條件的熊貓數據框中添加隨機值

慕勒3428872 2022-06-28 10:11:57
我正在嘗試有條件地在預期范圍內添加隨機值。數據 =LOT NO  QTY(Kgs)    % PICK      11C     12C     13C      14C    15C     16CH19       312        6.22                       H20       936        18.67                      H21       989        19.72                      H22       559        11.15                      H23       639        12.74                      H24       736        14.68                      H25       843        16.81其中 11c 到 16C 是具有空值(nans)或零的列。我想用一組條件添加或替換隨機值(int & float)列中值的平均總和11C應在 9-12.5 之間。列中值的平均總和12C應在 43-47 之間。3. 4. 其他條件如下11C    |    12C   |     13C  |   14C    |     15C    |   16C--------------------------------------------------------------9-12.5 |  45+/-2  |  205-230 |  5.0-6.0 |  <1000     |  <1500---------------------------------------------------------------我的預期輸出:LOT NO    QTY (Kgs)   % PICK    11C     12C     13C  14C    15C 16CH19       312          6.22     10.50   45.30   247  5.46   53  430H20       936          18.67    10.38   48.48   265  5.64   67  280H21       989          19.72    10.62   44.38   264  5.66   73  325H22       559          11.15    10.97   43.52   226  5.54   62  365H23       639          12.74    10.89   46.53   205  5.71   84  345H24       736          14.68    11.09   43.76   165  5.62   93  230H25       843          16.81    11.01   39.96   137  5.68   95  160我怎樣才能做到這一點?
查看完整描述

2 回答

?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

更新

好吧,假設df2是您的初始DataFrame.Here 是一個使用dictionaryfor 條件的示例:


import pandas as pd

import numpy as np


df = pd.DataFrame()

df2 = pd.DataFrame([[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]],

      columns=['11C', '12C', '13C', '14C', '15C', '16C'])



def n(_min, _max=None, rows=7, getint=None):

    if getint == 'AVG':

        return [round(x, 2) for x in _min + (_max - _min) * np.random.rand(rows)]

    _min = int(_min / rows)

    return np.random.choice(_min, rows)



conditions = {'11C': n(9, 12.5, getint='AVG'), '12C': n(43, 47, getint='AVG'), '13C': n(205, 230, getint='AVG'),

              '14C': n(5, 6, getint='AVG'), '15C': n(1000, None), '16C': n(1500, None)}

for key, val in conditions.items():

    df[key] = val


print(df)

df2.update(df)

df2.update(df)將更新其中的所有鍵,df但df2確保它們具有相同的行數,同時update()將更新現有的行數。


結果

     11C    12C     13C   14C  15C  16C

0  11.37  43.43  223.43  5.66  126  181

1  11.67  45.08  217.87  5.80   91   16

2   9.39  43.95  218.13  5.24   69   71

3  12.23  44.74  215.62  5.87   11  129

4  12.42  45.86  209.75  5.05    5  132

5   9.49  45.28  227.34  5.83    2    4

6   9.35  45.08  218.40  5.34  129   48


查看完整回答
反對 回復 2022-06-28
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

你可以像下面那樣使用 np.random 函數


df = pd.DataFrame()

n_rows = 10

df["11C"] = 9+ (12.5-9)*np.random.rand(n_rows)

df["12C"] = 43+ (47-43)*np.random.rand(n_rows)

df["13C"] = 205+ (330-205)*np.random.rand(n_rows)

df["14C"] = 5+ (5-6)*np.random.rand(n_rows)


df["15C"] = np.random.choice(1000, n_rows)

df["15C"] = np.random.choice(1500, n_rows)

df


查看完整回答
反對 回復 2022-06-28
  • 2 回答
  • 0 關注
  • 106 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號