Programing

Pandas의 데이터 프레임에있는 모든 열의 데이터 출력

crosscheck 2020. 8. 26. 07:23
반응형

Pandas의 데이터 프레임에있는 모든 열의 데이터 출력


이름을 가진 csv 파일이 params.csv있습니다. 다음을 사용하여 ipython qtconsole팬더 dataframe열고 만들었 습니다 .

import pandas
paramdata = pandas.read_csv('params.csv', names=paramnames)

여기서는 paramnames문자열 객체의 파이썬 목록입니다. paramnames(실제 목록의 길이는 22) :

paramnames = ["id",
"fc",
"mc",
"markup",
"asplevel",
"aspreview",
"reviewpd"]

ipython 프롬프트에서 입력 paramdata하고 Enter 키를 누르면 Pandas 웹 사이트의 예제에 표시된대로 열과 값이있는 데이터 프레임이 표시되지 않습니다 . 대신 데이터 프레임에 대한 정보를 얻습니다. 나는 얻다:

In[35]: paramdata
Out[35]: 
<class 'pandas.core.frame.DataFrame'>
Int64Index: 59 entries, 0 to 58
Data columns:
id                    59  non-null values
fc                    59  non-null values
mc                    59  non-null values
markup                59  non-null values
asplevel              59  non-null values
aspreview             59  non-null values
reviewpd              59  non-null values

입력 paramdata['mc']하면 mc열에 대해 예상대로 값을 얻습니다 . 두 가지 질문이 있습니다.

(1) pandas 웹 사이트의 예 (예 df: http://pandas.sourceforge.net/indexing.html#additional-column-access 의 출력 참조 )에서 데이터 프레임의 이름을 입력하면 실제 데이터. 실제 데이터 대신 위에 표시된 데이터 프레임에 대한 정보를 얻는 이유는 무엇입니까? 어딘가에 출력 옵션을 설정해야합니까?

(2) 데이터 프레임의 모든 열을 이름을 입력하지 않고 (예 : paramdata[['id','fc','mc']].

팬더 버전 0.8을 사용하고 있습니다.

감사합니다.


화면에 표시 할 데이터가 너무 많으므로 대신 요약이 표시됩니다.

어쨌든 데이터를 출력하려면 (아마도 화면에 맞지 않고 잘 보이지 않을 것입니다) :

print paramdata.values

데이터 프레임을 numpy-array 행렬 표현으로 변환합니다.

paramdata.columns

각 열 이름을 저장하고

paramdata.index

각 색인 (행 이름)을 저장합니다.


사용하다:

pandas.set_option('display.max_columns', 7)

이렇게하면 Pandas가 보유한 7 개의 열을 표시하게됩니다. 또는 더 일반적으로 :

pandas.set_option('display.max_columns', None)

열 수에 관계없이 강제로 표시됩니다.

설명 :의 기본값은 max_columns이며 0모든 열을 콘솔 너비에 맞출 수있는 경우에만 Pandas에게 테이블을 표시하도록 지시합니다.

또는 다음을 사용하여 콘솔 너비 (문자 단위)를 기본값 인 80에서 변경할 수 있습니다.

pandas.set_option('display.width', 200)

나는 이것이 오래된 질문이라는 것을 알고 있지만 비슷한 문제가 있었으며 내가 한 것이 당신에게도 효과가 있다고 생각합니다.

to_csv () 메서드를 사용하고 stdout에 썼습니다.

import sys

paramdata.to_csv(sys.stdout)

This should dump the whole dataframe whether it's nicely-printable or not, and you can use the to_csv parameters to configure column separators, whether the index is printed, etc.

Edit: It is now possible to use None as the target for .to_csv() with similar effect, which is arguably a lot nicer:

paramdata.to_csv(None)

In ipython, I use this to print a part of the dataframe that works quite well (prints the first 100 rows):

print paramdata.head(100).to_string()

you can also use DataFrame.head(x) / .tail(x) to display the first / last x rows of the DataFrame.


I'm coming to python from R, and R's head() function wraps lines in a really convenient way for looking at data:

> head(cbind(mtcars, mtcars, mtcars))
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb  mpg cyl
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4 21.0   6
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4 21.0   6
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 22.8   4
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1 21.4   6
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2 18.7   8
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1 18.1   6
                  disp  hp drat    wt  qsec vs am gear carb  mpg cyl disp  hp
Mazda RX4          160 110 3.90 2.620 16.46  0  1    4    4 21.0   6  160 110
Mazda RX4 Wag      160 110 3.90 2.875 17.02  0  1    4    4 21.0   6  160 110
Datsun 710         108  93 3.85 2.320 18.61  1  1    4    1 22.8   4  108  93
Hornet 4 Drive     258 110 3.08 3.215 19.44  1  0    3    1 21.4   6  258 110
Hornet Sportabout  360 175 3.15 3.440 17.02  0  0    3    2 18.7   8  360 175
Valiant            225 105 2.76 3.460 20.22  1  0    3    1 18.1   6  225 105
                  drat    wt  qsec vs am gear carb
Mazda RX4         3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     3.90 2.875 17.02  0  1    4    4
Datsun 710        3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 3.15 3.440 17.02  0  0    3    2
Valiant           2.76 3.460 20.22  1  0    3    1

I developed the following little python function to mimic this functionality:

def rhead(x, nrow = 6, ncol = 4):
    pd.set_option('display.expand_frame_repr', False)
    seq = np.arange(0, len(x.columns), ncol)
    for i in seq:
        print(x.loc[range(0, nrow), x.columns[range(i, min(i+ncol, len(x.columns)))]])
    pd.set_option('display.expand_frame_repr', True)

(it depends on pandas and numpy, obviously)


you can use sequence slicing syntax i.e

paramdata[:5] # first five records
paramdata[-5:] # last five records
paramdata[:] # all records

sometimes the dataframe might not fit in the screen buffer in which case you are probably better off either printing a small subset or exporting it to something else, plot or (csv again)

참고URL : https://stackoverflow.com/questions/11361985/output-data-from-all-columns-in-a-dataframe-in-pandas

반응형