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
'Programing' 카테고리의 다른 글
함수에서 C 문자열 반환 (0) | 2020.08.28 |
---|---|
어쨌든 빠르게 클릭 할 때 Chrome에서 요소의 파란색 강조 표시를 방지하려면? (0) | 2020.08.26 |
Modulus Divison은 어떻게 작동합니까? (0) | 2020.08.26 |
CPU에서 Tensorflow를 실행하는 방법 (0) | 2020.08.26 |
bash / cut / split을 사용하여 문자열의 일부 추출 (0) | 2020.08.26 |