Python Pandas - Công cụ IO

Các Pandas I/O API là một tập hợp các chức năng của trình đọc cấp cao nhất được truy cập như pd.read_csv() thường trả về một đối tượng Pandas.

Hai hàm workhorse để đọc các tệp văn bản (hoặc các tệp phẳng) là read_csv()read_table(). Cả hai đều sử dụng cùng một mã phân tích cú pháp để chuyển đổi dữ liệu dạng bảng một cách thông minh thànhDataFrame đối tượng -

pandas.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer',
names=None, index_col=None, usecols=None
pandas.read_csv(filepath_or_buffer, sep='\t', delimiter=None, header='infer',
names=None, index_col=None, usecols=None

Đây là cách csv dữ liệu tệp trông giống như -

S.No,Name,Age,City,Salary
1,Tom,28,Toronto,20000
2,Lee,32,HongKong,3000
3,Steven,43,Bay Area,8300
4,Ram,38,Hyderabad,3900

Lưu dữ liệu này thành temp.csv và tiến hành các hoạt động trên đó.

S.No,Name,Age,City,Salary
1,Tom,28,Toronto,20000
2,Lee,32,HongKong,3000
3,Steven,43,Bay Area,8300
4,Ram,38,Hyderabad,3900

Lưu dữ liệu này thành temp.csv và tiến hành các hoạt động trên đó.

read.csv

read.csv đọc dữ liệu từ các tệp csv và tạo một đối tượng DataFrame.

import pandas as pd

df=pd.read_csv("temp.csv")
print df

Nó là output như sau -

S.No     Name   Age       City   Salary
0     1      Tom    28    Toronto    20000
1     2      Lee    32   HongKong     3000
2     3   Steven    43   Bay Area     8300
3     4      Ram    38  Hyderabad     3900

chỉ mục tùy chỉnh

Điều này chỉ định một cột trong tệp csv để tùy chỉnh chỉ mục bằng cách sử dụng index_col.

import pandas as pd

df=pd.read_csv("temp.csv",index_col=['S.No'])
print df

Nó là output như sau -

S.No   Name   Age       City   Salary
1       Tom    28    Toronto    20000
2       Lee    32   HongKong     3000
3    Steven    43   Bay Area     8300
4       Ram    38  Hyderabad     3900

Người chuyển đổi

dtype trong số các cột có thể được chuyển dưới dạng chính tả.

import pandas as pd

df = pd.read_csv("temp.csv", dtype={'Salary': np.float64})
print df.dtypes

Nó là output như sau -

S.No       int64
Name      object
Age        int64
City      object
Salary   float64
dtype: object

Theo mặc định, dtype của cột Lương là int, nhưng kết quả cho thấy nó là float bởi vì chúng tôi đã truyền kiểu rõ ràng.

Do đó, dữ liệu trông giống như float -

S.No   Name   Age      City    Salary
0   1     Tom   28    Toronto   20000.0
1   2     Lee   32   HongKong    3000.0
2   3  Steven   43   Bay Area    8300.0
3   4     Ram   38  Hyderabad    3900.0

header_names

Chỉ định tên của tiêu đề bằng cách sử dụng đối số tên.

import pandas as pd
 
df=pd.read_csv("temp.csv", names=['a', 'b', 'c','d','e'])
print df

Nó là output như sau -

a        b    c           d        e
0   S.No     Name   Age       City   Salary
1      1      Tom   28     Toronto    20000
2      2      Lee   32    HongKong     3000
3      3   Steven   43    Bay Area     8300
4      4      Ram   38   Hyderabad     3900

Quan sát, tên tiêu đề được nối với tên tùy chỉnh, nhưng tiêu đề trong tệp vẫn chưa bị loại bỏ. Bây giờ, chúng ta sử dụng đối số tiêu đề để loại bỏ điều đó.

Nếu tiêu đề nằm trong một hàng khác với tiêu đề đầu tiên, hãy chuyển số hàng cho tiêu đề. Thao tác này sẽ bỏ qua các hàng trước đó.

import pandas as pd 

df=pd.read_csv("temp.csv",names=['a','b','c','d','e'],header=0)
print df

Nó là output như sau -

a        b    c           d        e
0  S.No     Name   Age       City   Salary
1     1      Tom   28     Toronto    20000
2     2      Lee   32    HongKong     3000
3     3   Steven   43    Bay Area     8300
4     4      Ram   38   Hyderabad     3900

người bỏ qua

bỏ qua bỏ qua số hàng được chỉ định.

import pandas as pd

df=pd.read_csv("temp.csv", skiprows=2)
print df

Nó là output như sau -

2      Lee   32    HongKong   3000
0   3   Steven   43    Bay Area   8300
1   4      Ram   38   Hyderabad   3900