데이터분석/Python
[Pandas] 데이터 프레임의 이해와 생성
Bookohol
2020. 3. 23. 11:04
Series?
- Series는 numpy의 1차원 배열과 구조가 동일
- 인덱스와 칼럼명을 가지고 있어서 numpy보다 사용이 편리
- index를 지정해서 key값으로 사용할 수 있음
- Series를 여러 개 붙이면 Dataframe이 됨
import pandas as pd
data = pd.Series(['one','two','three'])
data.values
>>> array(['one','two','three'])
data.index
>>> RangeIndex(start=0, stop=3, step=1)
data = pd.Series(data.values, index=[2,3,4])
>>>
2 one
3 two
4 three
data[2] # list와 같이 순서대로
>>> 'three'
data['2'] # index 지정 시 str로 인식
>>> 'one'
DataFrame?
- DataFrame는 numpy의 ndArray를 기반으로 한 행과 열로 이루어진 데이터 구조.
- Series가 1차원 자료구조라면, 이 1차원의 자료구조가 여러 개 모인 2차원 데이터 구조(엑셀과 동일한 형태의 자료)
1. 기본 자료구조에서 DataFrame 생성 시
- dictionary로 dataframe 생성 기본 자료 구조이므로 DataFrame 생성이 가능
## row oriented
friend_dict_list = [{'name': 'Jone', 'age': 20, 'job': 'student'},
{'name': 'Jenny', 'age': 30, 'job': 'developer'},
{'name': 'Nate', 'age': 30, 'job': 'teacher'}]
df = pd.DataFrame(friend_dict_list)
>>>
age job name
0 20 student Jone
1 30 developer Jenny
2 30 teacher Nate
## column oriented
sales = {'account': ['Jones LLC', 'Alpha Co', 'Blue Inc'],
'Jan': [150, 200, 50],
'Feb': [200, 210, 90],
'Mar': [140, 215, 95]}
df = pd.DataFrame.from_dict(sales)
# column 순서 바꾸고자 할 때
df = df[['name', 'age', 'job']]
df
>>>
name age job
0 Jone 20 student
1 Jenny 30 developer
2 Nate 30 teacher
2. OrderedDict로 데이터프레임 생성하기
: OrderedDict 자료구조로 DataFrame을 생성하면, 컬럼의 순서가 뒤바뀌지 않습니다
from collections import OrderedDict
friend_ordered_dict = OrderedDict([ ('name', ['John', 'Jenny', 'Nate']),
('age', [20, 30, 30]),
('job', ['student', 'developer', 'teacher']) ] )
df = pd.DataFrame.from_dict(friend_ordered_dict)
df
>>>
name age job
0 John 20 student
1 Jenny 30 developer
2 Nate 30 teacher
3. list로 DataFrame 생성하기
## row oriented
friend_list = [ ['John', 20, 'student'],['Jenny', 30, 'developer'],['Nate', 30, 'teacher'] ]
column_name = ['name', 'age', 'job']
df = pd.DataFrame.from_records(friend_list, columns=column_name)
df
>>>
name age job
0 John 20 student
1 Jenny 30 developer
2 Nate 30 teacher
## column oriented
friend_list = [
['name',['John', 'Jenny', 'Nate']],
['age',[20,30,30]],
['job',['student', 'developer', 'teacher']]
]
df = pd.DataFrame.from_dict(OrderedDict(friend_list))
2. 파일을 통해 DataFrame 생성 시
df = pd.read_csv('directory')
출처 : http://pbpython.com/pandas-list-dict.html
Creating Pandas DataFrames from Lists and Dictionaries - Practical Business Python
Tue 06 September 2016 Posted by Chris Moffitt in articles Introduction Whenever I am doing analysis with pandas my first goal is to get data into a panda’s DataFrame using one of the many available options. For the vast majority of instances, I use read
pbpython.com