【问题标题】:Randomly assign values to subset of rows in pandas dataframe将值随机分配给熊猫数据框中的行子集
【发布时间】:2017-09-21 19:37:59
【问题描述】:

我正在使用 Python 2.7.11 和 Anaconda。

我了解如何设置 Pandas DataFrame 的行子集的值,例如 Modifying a subset of rows in a pandas dataframe,但我需要随机设置这些值。

假设我有下面的数据框df。如何随机设置group == 2 的值,使它们不都等于1.0?

import pandas as pd
import numpy as np

df = pd.DataFrame([1,1,1,2,2,2], columns = ['group'])
df['value'] = np.nan
df.loc[df['group'] == 2, 'value'] = np.random.randint(0,5)

print df
   group  value
0      1    NaN
1      1    NaN
2      1    NaN
3      2    1.0
4      2    1.0
5      2    1.0

df 应该如下所示:

print df
   group  value
0      1    NaN
1      1    NaN
2      1    NaN
3      2    1.0
4      2    4.0
5      2    2.0

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您必须确定第 2 组的大小

    g2 = df['group'] == 2
    df.loc[g2, 'value'] = np.random.randint(5, size=g2.sum())
    print(df)
    
       group  value
    0      1    NaN
    1      1    NaN
    2      1    NaN
    3      2    3.0
    4      2    4.0
    5      2    2.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-13
      • 1970-01-01
      • 1970-01-01
      • 2022-08-04
      相关资源
      最近更新 更多