答案 0 :(得分:3)
IIUC,DataFrame.groupby
+ $mySplat = @{
"Quiet" = $true
"Param1" = "myParam1"
}
$mySplat.Add("Param2", "myParam2")
$mySplat.Remove("Quiet");
. .\script2.ps1 @mySplat
transform
答案 1 :(得分:2)
由于您的伪数据不是可复制的格式,所以我制作了自己的数据。这是解决方案的简短版本。下面还提供了一个便捷功能( random_update_altitude()
)。我还使用了便捷函数中的seed
自变量来控制生成的随机序列。这将帮助您使其重现。
注意:您还可以选择随机数分布的类型:统一(np.random.rand
,np.random.randint
)或 normal ({{1 }}。
np.random.randn
ceiling, base = 4000, 0
for i, name in enumerate(df.names.unique()):
height = (ceiling - base)*np.random.rand()
df.loc[df['name']==name,'Altitude'] = height
import numpy as np
import pandas as pd
def random_update_altitude(df, column='Altitude', ceiling=4000, base=0, seed=0):
if column not in df.columns:
df[column] = None
np.random.seed(seed=seed)
for i, name in enumerate(df.name.unique()):
height = (ceiling - base)*np.random.rand()
df.loc[df['name']==name,'Altitude'] = height
return df
df = random_update_altitude(df, column='Altitude', ceiling=4000, seed=0)
print(df)
输出:
def make_dummy_data():
names = 'abcdefghijklmnopqrstuvwxyz'
names = list(names.upper())
df = pd.DataFrame({'name': names[:5] + names[3:7] + names[:3]})
df = df.sort_values(by=['name']).reset_index(drop=True)
return df
df = make_dummy_data()
print(df)