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
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
添加回答
举报