[python] 인덱스없이 팬더 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



답변

print df.to_string(index=False)


답변

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

또는 가능하면 :

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


답변

아래 줄은 인쇄 할 때 DataFrame의 색인 열을 숨 깁니다.

df.style.hide_index()


답변

데이터 프레임을 예쁘게 인쇄하려면 tabulate package를 사용할 수 있습니다 .

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


답변

“예쁜 인쇄”사용을 유지하려면

from IPython.display import HTML
HTML(df.to_html(index=False))

여기에 이미지 설명을 입력하십시오


답변

문자열 / JSON을 인쇄하려면 다음을 사용하여 해결할 수 있습니다.

print(df.to_string(index=False))

그러나 데이터를 직렬화하거나 MongoDB로 보내려면 다음과 같은 작업을 수행하는 것이 좋습니다.

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

이제 데이터 방향을 지정하는 6 가지 방법이 있습니다. 팬더 문서 를 더 잘 확인하십시오.


답변

“인덱스없이 데이터 프레임을 인쇄하는 방법”질문에 대답하려면 다음과 같이 인덱스를 빈 문자열 (데이터 프레임의 각 행마다 하나씩)의 배열로 설정할 수 있습니다.

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 Notebook에서이 스크린 샷에 따라 렌더링됩니다.
인덱스 열이없는 Juptyer Notebooks 데이터 프레임