it-swarm.com.de

So drucken Sie pandas DataFrame ohne Index

Ich möchte den gesamten Datenrahmen drucken, aber nicht den Index

Außerdem ist eine Spalte vom Datetime-Typ. Ich möchte nur die Uhrzeit und nicht das Datum drucken.

Der Datenrahmen sieht folgendermaßen aus:

   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

Ich möchte es drucken als

User ID   Enter Time   Activity Number
123         00:09:00              1411
123         00:18:00               893
123         00:49:00              1041
108
lserlohn
print df.to_string(index=False)
153
Pavol Zibrita
print(df.to_csv(sep='\t', index=False))

Oder möglicherweise:

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

Wenn Sie nur einen String/Json drucken möchten, können Sie diesen mit folgendem Befehl lösen:

print(df.to_string(index=False))

Buf, wenn Sie die Daten auch serialisieren oder sogar an eine MongoDB senden möchten, sollten Sie Folgendes tun:

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

Es gibt mittlerweile 6 Möglichkeiten, die Daten zu orientieren. Weitere Informationen finden Sie in den panda docs , die besser zu Ihnen passen.

3
Ziul

Wenn Sie die Datenrahmen hübsch drucken möchten, können Sie tabellarisch package verwenden.

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)

Insbesondere die showindex=False erlaubt Ihnen, wie der Name schon sagt, den Index nicht anzuzeigen. Die Ausgabe würde folgendermaßen aussehen:

+--------+--------+--------+
|   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 |
+--------+--------+--------+
2
kingmakerking

Um die Frage "Drucken von Datenrahmen ohne Index" zu beantworten, können Sie den Index auf ein Array leerer Zeichenfolgen festlegen (eine für jede Zeile im Datenrahmen):

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

Wenn wir die Daten Ihres Beitrags verwenden:

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)

die normalerweise ausdrucken würde als:

   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

Indem Sie ein Array mit so vielen leeren Zeichenfolgen erstellen, wie Zeilen im Datenrahmen vorhanden sind:

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

Der Index wird aus der Ausgabe entfernt:

  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

Und in Jupyter Notebooks würde wie in diesem Screenshot dargestellt: Juptyer Notebooks-Datenframe ohne Indexspalte

1
roj

In der folgenden Zeile wird die Indexspalte von DataFrame beim Drucken ausgeblendet

df.style.hide_index()
0
AnarchistGeek