Вот одно из возможных решений для возврата всех дублированных значений в двух столбцах (то есть в строках 0, 1, 3, 4, 6, 7):
>>> key1_dups = frame.key1[frame.key1.duplicated()].values
>>> key2_dups = frame.key2[frame.key2.duplicated()].values
>>> frame[frame.key1.isin(key1_dups) & frame.key2.isin(key2_dups)]
key1 key2 data
0 1 2 5
1 2 2 6
3 1 2 6
4 2 2 1
6 2 2 2
7 2 2 8
( Изменить: на самом деле, метод df.duplicated(take_last=True) | df.duplicated()
в ответе @ Yoel более аккуратный.)
Чтобы запросить результаты вашей операции groupby
, вы можете использовать loc
. Например:
>>> dups = frame[frame.key1.isin(key1_dups) & frame.key2.isin(key2_dups)]
>>> grouped = dups.groupby(['key1','key2']).min()
>>> grouped
data
key1 key2
1 2 5
2 2 1
>>> grouped.loc[1, 2]
data 5
Name: (1, 2), dtype: int64
Альтернативно, верните grouped
обратно в «нормальный» DataFrame, сбросив оба индекса:
>>> grouped.reset_index(level=0).reset_index(level=0)
key2 key1 data
0 2 1 5
1 2 2 1
Цвета определяются $LS_COLORS
переменная среды. В зависимости от Вашего дистрибутива это сгенерировано автоматически, когда оболочка запускается, с помощью ~/.dircolors
или /etc/DIR_COLORS
.
Редактирование:
Для списка цветных значений используйте этот сценарий:
eval $(echo "no:global default;fi:normal file;di:directory;ln:symbolic link;pi:named pipe;so:socket;do:door;bd:block device;cd:character device;or:orphan symlink;mi:missing file;su:set uid;sg:set gid;tw:sticky other writable;ow:other writable;st:sticky;ex:executable;"|sed -e 's/:/="/g; s/\;/"\n/g')
{
IFS=:
for i in $LS_COLORS
do
echo -e "\e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )\e[m"
done
}
Судите "человека 5 dir_colors", чтобы видеть, как это установлено в Вашей системе. Мой не имеет/etc/DIR_COLORS, таким образом, он должен быть установлен где-то в другом месте.
Выполнение команды dircolors -p
распечатает все настройки цвета по умолчанию. См. http://linux.about.com/library/cmd/blcmdl1_dircolors.htm .
Google для LS_COLORS для некоторых полезных ссылок.
Редактирование: Для списка цветов этот простой сценарий удара может дать общее представление:
IFS=:
set $LS_COLORS
for C in $*
do
IFS='='
set $C
echo -e "\033[$2m$1\033[00m"
done
Необходимо быть в состоянии видеть список отображений в/etc/DIR_COLORS. Можно переопределить это путем создания .dir_colors в корневом каталоге.