Разделение файла csv на фрейм данных panda несколькими столбцами

У меня есть файл tsv с несколькими столбцами. Есть 10 и более столбцов, но важными для меня столбцами являются те, у которых есть имя user_name, shift_id, url_id. Я хочу создать кадр данных, который сначала разделяет весь файл csv на основе user_names, т. Е. Группируются только строки с одинаковым именем пользователя. Из этого куска я делаю еще один кусок, где только строки с определенным shift_id группируются вместе, а затем из этого куска делают кусок с тем же URL-адресом. Я, к сожалению, не могу поделиться данными из-за правила компании и сделать воображаемую таблицу данных более запутанной.

У двух других столбцов есть метки времени. Я хочу рассчитать продолжительность времени куска, но только после того, как я группирую кусок в соответствии с этими столбцами.

Я видел ответы, разделяющие кадр данных на определенное значение столбца, но в моем случае у меня есть три значения столбца, и порядок, в котором они разделены, тоже имеет значение.

Спасибо за помощь!

One Solution collect form web for “Разделение файла csv на фрейм данных panda несколькими столбцами”

Предполагая, что вы читаете столбцы в dataframe

 df = pd.DataFrame({'col1':[1,2,3], 'col2':[4,5,6],'col3':[7,8,9], 'col4':[1,2,3],'col5':[1,2,3],'col6':[1,2,3], 'col7':[1,2,3],'col8':[1,2,3],'col9':[1,2,3], 'col91':[1,2,3]}) print(df) 

Вывод:

  col1 col2 col3 col4 col5 col6 col7 col8 col9 col91 0 1 4 7 1 1 1 1 1 1 1 1 2 5 8 2 2 2 2 2 2 2 2 3 6 9 3 3 3 3 3 3 3 

Теперь мы можем выбрать только три столбца, представляющие интерес, пусть это будут col1, col2, and col3

 tmp_df = df[['col1', 'col2', 'col3']] print(tmp_df) 

Вывод:

  col1 col2 col3 0 1 4 7 1 2 5 8 2 3 6 9 

Далее мы хотим отфильтровать на основе трех значений столбца:

 final_df = tmp_df[(tmp_df.col1 == 1) & (tmp_df.col2 == 4) & (tmp_df.col3== 7)] print(final_df) 

Вывод:

  col1 col2 col3 0 1 4 7 

После чтения в dataframe все эти шаги могут быть достигнуты в одной строке:

 final = df[['col1', 'col2', 'col3']][(df.col1 == 1) & (df.col2 == 4) & (df.col3== 7)] final 

Надеюсь, поможет!

Обновить:

 df = pd.DataFrame({'col1':[1,1,1,1,1], 'col2':[4,4,4,4,7],'col3':[7,7,9,7,7], 'col4':['X','X','X','X','X'],'col5':['X','X','X','X','X'],'col6':['X','X','X','X','X'], 'col7':['X','X','X','X','X'],'col8':['X','X','X','X','X'],'col9':['X','X','X','X','X'], 'col91':['X','X','X','X','X']}) print(df) 

Вывод:

  col1 col2 col3 col4 col5 col6 col7 col8 col9 col91 0 1 4 7 XXXXXXX 1 1 4 7 XXXXXXX 2 1 4 9 XXXXXXX 3 1 4 7 XXXXXXX 4 1 7 7 XXXXXXX 

Теперь, используя аналогичную маскировку, как указано выше:

 final = df[(df.col1 == 1) & (df.col2 == 4) & (df.col3== 7)] final 

Вывод:

  col1 col2 col3 col4 col5 col6 col7 col8 col9 col91 0 1 4 7 XXXXXXX 1 1 4 7 XXXXXXX 3 1 4 7 XXXXXXX 
  • Исключение с оригинальной трассировкой - совместимая версия 2.6-3.X
  • Вызовите файл Python в программе SML?
  • Почему имя содержащего класса не распознается как аннотация функции возвращаемого значения?
  • Вход для вывода на печать
  • Как я могу сделать асинхронные операции mysql в торнадо с помощью Python3.4?
  • Python 3, easy_install, pip и pypi
  • Пип висит в Windows 7
  • языковой файл не загружается автоматически в Django
  • Python - лучший язык программирования в мире.