ОБНОВЛЕНО
Хорошо, скажем, df2
- ваш начальный DataFrame
. Вот пример использования dictionary
для условий:
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