Как применить форматирование к нескольким строкам / столбцам внутри фрейма данных, условно для логического значения? - PullRequest
0 голосов
/ 26 марта 2020

У меня есть 2 кадра данных, res_params и res_tStats.

Столбцы и индекс идентичны в обоих кадрах данных, как и форма каждого df. Кадры данных идентичны во всех аспектах , за исключением значений в них .

Мне нужно преобразовать определенные значения в пределах res_params из числа с плавающей запятой в str и добавить дополнительный текст (например, 3 звезды) *** "), Условно для логических значений, примененных к res_tStats.

. Для этого мне сначала нужно получить индекс строк и столбцов из кадра данных res_tStats, где abs(res_tStats) > 1.96, а затем применить форматирование до того же индекса и строк во фрейме данных res_params.

Пример

# res_tStats is a NxM dataframe with shape (6, 4) and 0 NaN
# res_params is a NXM dataframe with shape (6, 4) and 0 NaN

# Find values for res_tStats > 1.96 and get values within res_params for same index:
res_params_significant = res_params[np.abs(res_tStats) > 1.96]

res_params_significant - это df с формой (6, 4) отображая значения res_params, где np.abs(res_tStats) > 1.96, и, что важно, NaN в другом месте.

Теперь мне нужно, чтобы NaNs в res_params_significant было заполнено значениями в res_params во всех индексах.

Или, иначе говоря, мне нужны значения для каждого индекса i в пределах res_params, где i == j, такой, что j является позицией индекса res_params_significant со значением, НЕ равным NaN. т.е. мне нужны значения в res_params, которые равны не-NaN значениям в res_params_significant. Затем преобразуйте каждое значение в индексе i == j в строку и добавьте еще немного форматирования (например, 3 звезды (***)). Для i != j либо оставьте все как есть, либо преобразуйте в строку без какого-либо дополнительного форматирования.

Имеет ли это смысл? Я чувствую, что слишком усложняю это ...

Любая помощь будет высоко ценится!

...