Эти 3 строки работали лучше для меня:
pd.set_option('display.max_columns', None)
pd.set_option('display.expand_frame_repr', False)
pd.set_option('max_colwidth', -1)
Anaconda / Python 3.6.5 pandas: 0.23.0
Вычислить средство строки в поднаборе столбцов:
Создайте новый data.frame, который определяет первый столбец из DF как столбец с именем ID и вычисляет среднее значение для всех остальных полей этой строки, и помещает это в колонку под названием «Средства»:
data.frame(ID=DF[,1], Means=rowMeans(DF[,-1]))
ID Means
1 A 3.666667
2 B 4.333333
3 C 3.333333
4 D 4.666667
5 E 4.333333
Начиная с вашего фрейма данных DF
, вы можете использовать пакет data.table
:
library(data.table)
## EDIT: As suggested by @MichaelChirico, setDT converts a
## data.frame to a data.table by reference and is preferred
## if you don't mind losing the data.frame
setDT(DF)
# EDIT: To get the column name 'Mean':
DF[, .(Mean = rowMeans(.SD)), by = ID]
# ID Mean
# [1,] A 3.666667
# [2,] B 4.333333
# [3,] C 3.333333
# [4,] D 4.666667
# [5,] E 4.333333
Вы можете создать новую строку с $
в вашем кадре данных, соответствующем значению
DF$Mean <- rowMeans(DF[,2:4])
Использование dplyr :
library(dplyr)
# exclude ID column then get mean
DF %>%
transmute(ID,
Mean = rowMeans(select(., -ID)))
Или
# select the columns to include in mean
DF %>%
transmute(ID,
Mean = rowMeans(select(., C1:C3)))
# ID Mean
# 1 A 3.666667
# 2 B 4.333333
# 3 C 3.333333
# 4 D 4.666667
# 5 E 4.333333