import numpy as np
import pandas as pd
np.random.seed(12345)
import matplotlib.pyplot as plt
plt.rc('figure', figsize=(10, 6))
np.set_printoptions(precision=4, suppress=True)
df = pd.read_csv('examples/ex1.csv')
#read_table은 구분자 지정
#pd.read_table('examples/ex1.csv', sep=',') 위랑 결과 동일.
df
pd.read_csv('examples/ex2.csv', header=None)
pd.read_csv('examples/ex2.csv', names=['a', 'b', 'c', 'd', 'message'])
# index_col 옵션: index column 지정
names = ['a', 'b', 'c', 'd', 'message']
pd.read_csv('examples/ex2.csv', names=names, index_col='message')
key1,key2,value1,value2
one,a,1,2
one,b,3,4
one,c,5,6
one,d,7,8
two,a,9,10
two,b,11,12
two,c,13,14
two,d,15,16
parsed = pd.read_csv('examples/csv_mindex.csv',
index_col=['key1', 'key2'])
list(open('examples/ex3.txt'))
[' A B C\n',
'aaa -0.264438 -1.026059 -0.619500\n',
'bbb 0.927272 0.302904 -0.032399\n',
'ccc -0.264273 -0.386314 -0.217601\n',
'ddd -0.871858 -0.348382 1.100491\n']
# 행의 데이터 갯수보다 한개 적은 column name을 가진 경우, 첫번째 열을 index
result = pd.read_table('examples/ex3.txt', sep='\s+')
result
list(open('examples/ex4.csv'))
['# hey!\n',
'a,b,c,d,message\n',
'# just wanted to make things more difficult for you\n',
'# who reads CSV files with computers, anyway?\n',
'1,2,3,4,hello\n',
'5,6,7,8,world\n',
'9,10,11,12,foo']
#skip할 행의 인덱스 순서번호를 삽입
result = pd.read_csv('examples/ex4.csv', skiprows=[0, 2, 3])
result
result = pd.read_csv('examples/ex5.csv')
result
pd.isnull(result)
result = pd.read_csv('examples/ex5.csv', na_values=['NULL'])
result
sentinels = {'message': ['foo', 'NA'], 'something': ['two']}
pd.read_csv('examples/ex5.csv', na_values=sentinels)
pd.options.display.max_rows = 10 #10개의 행만 출력
result = pd.read_csv('examples/ex6.csv')
pd.read_csv('examples/ex6.csv', nrows=5) #5개 행만 읽음.
chunker = pd.read_csv('examples/ex6.csv', chunksize=1000)
# 1000줄 읽은 chunker에서 'key'열 값의 빈도 계산
chunker = pd.read_csv('examples/ex6.csv', chunksize=1000)
tot = pd.Series([])
for piece in chunker:
tot = tot.add(piece['key'].value_counts(), fill_value=0)
# 빈도 순으로 내림차순 정렬
tot = tot.sort_values(ascending=False)
tot[:10]
data = pd.read_csv('examples/ex5.csv')
data.to_csv('examples/out.csv') #table을 csv의 text 형태로
list(open('examples/out.csv'))
[',something,a,b,c,d,message\n',
'0,one,1,2,3.0,4,\n',
'1,two,5,6,,8,world\n',
'2,three,9,10,11.0,12,foo\n']
import sys
data.to_csv(sys.stdout, sep='|')
|something|a|b|c|d|message
0|one|1|2|3.0|4|
1|two|5|6||8|world
2|three|9|10|11.0|12|foo
data.to_csv(sys.stdout, na_rep='NULL')
,something,a,b,c,d,message
0,one,1,2,3.0,4,NULL
1,two,5,6,NULL,8,world
2,three,9,10,11.0,12,foo
data.to_csv(sys.stdout, index=False, header=False)
one,1,2,3.0,4,
two,5,6,,8,world
three,9,10,11.0,12,foo
data.to_csv(sys.stdout, index=False, columns=['a', 'b', 'c']) #index는 안 보이게
a, b, c
1, 2, 3.0
5, 6,
9, 0, 1.0
dates = pd.date_range('1/1/2000', periods=7) #총 7days 출력
dates
DatetimeIndex(['2000-01-01', '2000-01-02', '2000-01-03', '2000-01-04',
'2000-01-05', '2000-01-06', '2000-01-07'],
dtype='datetime64[ns]', freq='D')
ts = pd.Series(np.arange(7), index=dates) #위 출력한 날짜를 인덱스로
ts
#ts.to_csv('examples/tseries.csv') csv 파일로 변경
2000-01-01 0
2000-01-02 1
2000-01-03 2
2000-01-04 3
2000-01-05 4
2000-01-06 5
2000-01-07 6
['"a","b","c"\n', '"1","2","3"\n', '"1","2","3"\n']
import csv
f = open('examples/ex7.csv')
reader = csv.reader(f)
for line in reader:
print(line)
['a', 'b', 'c']
['1', '2', '3']
['1', '2', '3']