Подтвердить что ты не робот

Как распечатать панды DataFrame без индекса

Я хочу распечатать весь файл данных, но я не хочу печатать индекс

Кроме того, один столбец является типом даты и времени, я просто хочу напечатать время, а не дату.

Информационная рамка выглядит так:

   User ID           Enter Time   Activity Number
0      123  2014-07-08 00:09:00              1411
1      123  2014-07-08 00:18:00               893
2      123  2014-07-08 00:49:00              1041

Я хочу, чтобы он печатался как

User ID   Enter Time   Activity Number
123         00:09:00              1411
123         00:18:00               893
123         00:49:00              1041
4b9b3361

Ответ 1

print df.to_string(index=False)

Ответ 2

print(df.to_csv(sep='\t', index=False))

Или, возможно:

print(df.to_csv(columns=['A', 'B', 'C'], sep='\t', index=False))

Ответ 3

Если вы просто хотите, чтобы строка /json была напечатана, ее можно решить с помощью

print(df.to_string(index=False))

Buf, если вы хотите сериализовать данные или даже отправить в MongoDB, было бы лучше сделать что-то вроде:

document = df.to_dict(orient='list')

На данный момент существует 6 способов ориентирования данных, проверьте больше в panda docs, который лучше подходит вам.

Ответ 4

Если вы хотите распечатать фреймы данных, то вы можете использовать пакет tabulate.

import pandas as pd
import numpy as np
from tabulate import tabulate

def pprint_df(dframe):
    print tabulate(dframe, headers='keys', tablefmt='psql', showindex=False)

df = pd.DataFrame({'col1': np.random.randint(0, 100, 10), 
    'col2': np.random.randint(50, 100, 10), 
    'col3': np.random.randint(10, 10000, 10)})

pprint_df(df)

В частности, showindex=False, как следует из названия, позволяет не показывать индекс. Вывод будет выглядеть следующим образом:

+--------+--------+--------+
|   col1 |   col2 |   col3 |
|--------+--------+--------|
|     15 |     76 |   5175 |
|     30 |     97 |   3331 |
|     34 |     56 |   3513 |
|     50 |     65 |    203 |
|     84 |     75 |   7559 |
|     41 |     82 |    939 |
|     78 |     59 |   4971 |
|     98 |     99 |    167 |
|     81 |     99 |   6527 |
|     17 |     94 |   4267 |
+--------+--------+--------+

Ответ 5

Чтобы ответить на вопрос "Как напечатать фрейм данных без индекса", вы можете установить индекс как массив пустых строк (по одной на каждую строку в фрейме данных), например:

blankIndex=[''] * len(df)
df.index=blankIndex

Если мы используем данные из вашего поста:

row1 = (123, '2014-07-08 00:09:00', 1411)
row2 = (123, '2014-07-08 00:49:00', 1041)
row3 = (123, '2014-07-08 00:09:00', 1411)
data = [row1, row2, row3]
#set up dataframe
df = pd.DataFrame(data, columns=('User ID', 'Enter Time', 'Activity Number'))
print(df)

который обычно распечатывается как:

   User ID           Enter Time  Activity Number
0      123  2014-07-08 00:09:00             1411
1      123  2014-07-08 00:49:00             1041
2      123  2014-07-08 00:09:00             1411

Создавая массив с таким количеством пустых строк, сколько строк в кадре данных:

blankIndex=[''] * len(df)
df.index=blankIndex
print(df)

Это удалит индекс из вывода:

  User ID           Enter Time  Activity Number
      123  2014-07-08 00:09:00             1411
      123  2014-07-08 00:49:00             1041
      123  2014-07-08 00:09:00             1411

И в Jupyter Notebooks будет отображаться в соответствии с этим снимком экрана: кадр данных Juptyer Notebooks без столбца индекса

Ответ 6

Строка ниже будет скрывать столбец индекса DataFrame при печати

df.style.hide_index()

Ответ 7

Подобно многим ответам выше, в которых используется df.to_string (index = False), я часто считаю необходимым извлечь один столбец значений, и в этом случае вы можете указать отдельный столбец с помощью .to_string, используя следующее:

data = pd.DataFrame({'col1': np.random.randint(0, 100, 10), 
    'col2': np.random.randint(50, 100, 10), 
    'col3': np.random.randint(10, 10000, 10)})

print(data.to_string(columns=['col1'], index=False)

print(data.to_string(columns=['col1', 'col2'], index=False))

Который обеспечивает простой для копирования (и без индекса) вывод для использования в других местах (Excel). Пример вывода:

col1  col2    
49    62    
97    97    
87    94    
85    61    
18    55