Мне нужна функция, которая задает фрейм данных и число num
создает фрейм данных с num
строками, так что каждая строка имеет следующее значение: - для столбцов со строковыми значениями мы выбираем значение из столбца висходная таблица - для столбцов с плавающей точкой или целыми числами мы находим среднее значение
Вот мой код
def rows_aggr(df, num):
dataframe = None
for i in range(0, num):
row = None
for cname in df.columns.values:
column = df[cname]
dfcol = Series.to_frame(column)
if column.dtype != np.number:
item = dfcol.sample(n=1)
else:
item = dfcol.mean(axis=1)
if row is None:
row = item
else:
row = pd.concat([row, item], axis=1)
if dataframe is None:
dataframe = row
else:
dataframe = pd.concat([dataframe, row], axis=0)
return dataframe
, по некоторым причинам строки содержат значения nan и превышают num
... и этоКод, кажется, не работает правильно.Если бы вы знали лучший способ выполнить то, что мне нужно, я был бы рад узнать.
для
df = pd.DataFrame({'col1':list('abcdef'),'col2':range(6)}) and num=3
мы бы получили что-то вроде
c, 2.5
f, 2.5
b, 2.5
, предполагая иc, f, b
были выбраны случайным образом
Спасибо!