pandas數據讀取(DataFrame & Series)


1、pandas數據的讀取

pandas需要先讀取表格類型的數據,然后進行分析

數據說明 說明 pandas讀取方法
csv、tsv、txt 逗號分割、tab分割的純文本文件 pd.read_csv
excel 微軟xls或者xlsx文件 pd.read_excel
mysql 關系向數據庫表 pd.read_sql

 

#本代碼示例:


import pandas as pd  #導入包

#1讀取csv,使用默認的標題行、逗號分割
fpath = “要打開文件的路徑”
ratings = pd.read_csv(fpath)   #使用pd.read_csv讀取數據
ratings.head()      #查看前幾行(默認5行)
ratings.shape      #查看數據的形狀,返回(行數、列數)
ratings.columns   # 查看列名列表
ratings.index       #查看索引列
ratings.dtypes    #查看每一列的數據類型

#1.2讀取txt文件,自己制定分隔符、列名
fpath = “文件的路徑”
pvuv  = pd.read_csv(
        fpath,
        sep = “\t”,  #l列的分隔符
        header = None,
        names = ['pdate','pv','uv']
)
print(pvuv)


#讀取excel文件
fpath = “文件的路徑”
pvuv = pd.read_excel(fpath)
print(pvuv)


#讀取Mysql數據庫
import pmysql
conn = pmysql.connect(
         host = '127.0.0.1',
         user = 'root',
         password = '123456',
         database = 'test',
         charest = 'utf8'
)
mysql_page = pd.read_sql("select * from 表名",con=conn)
print(mysql_page)

 

2、pandas數據結構(DataFrame   &   Series)

DataFrame:二維數據,整個表格,多行多列

df.columns 查詢列

df.index  查詢行

Series:一維數據,一行或者一列

 

 

#1、 Series
#2、DataFrame
#3、從DAtaFrame中查詢出Series

import pandas as pd 
import numpy as np

#series是一種類似於一維數組的對象,它由一組數據(不同數據類型)以及一組與之相關的數#據標簽(即索引)組成。

#1.1僅有數據列表即可產生最簡單的series
s1 = pd.Series([1,'a',5.2,6])
# print(s1)  #左側為索引,右側為數據
print(s1.index)   #獲取索引  結果:RangeIndex(start=0, stop=4, step=1)
print(s1.values)  #獲取數據   結果:[1 'a' 5.2 6]

#1.2 創建一個具有標簽索引的Series
s2 = pd.Series([1,'a',5.2,6],index = ['d','b','a','c'])
print(s2)
print(s2.index)  #Index(['d', 'b', 'a', 'c'], dtype='object')


#1.3 使用python字典創建Series
sdata = {'ohio':3500,'Texas':72000,'Oregs':16000,'Ggrqg':5000}
s3 = pd.Series(sdata)
print(s3)

#1.4 根據標簽索引查詢數據(類似python的字典dict)
print(s2['a'])#5.2
print(type(s2['a']))#<class 'float'>
print(s2[['b','a']])

#2 DataFrame
# DataFrame是一個表格型的數據結構
# 每一列可以是不同的值類型(數值、字符串、布爾值)
# 既有行索引index,也有列索引columns
# 可以被看由Series組成的字典


#2.1根據多個字典序列創建dataframe
data = {
    'state':['ofjg','sdfg','werw','wrgwer','rgwg'],
    'year':[2000,3000,5000,6000,9000],
    'pop':[1.5,1.7,1.6,5.3,3.5]
}
df = pd.DataFrame(data)
print(df)


#3.從DataFrame中查詢Series
# 如果只查詢一列,返回的是pd.Series
# 如果查詢多行、多列,返回的是pd.DataFrame

# 3.1 查詢一列 結果是一個pd.Series
print(df['year'])
print(type(df['year']))#<class 'pandas.core.series.Series'>

# 3.2 查詢多列,結果是一個pd.DataFrame

print(df[['year','pop']])
print(type(df[['year','pop']]))#<class 'pandas.core.frame.DataFrame'>


# 3.3 查詢一行,結果是一個pd.Series
print(df.loc[1])
print(type(df.loc[1]))#<class 'pandas.core.series.Series'>


# 3.4 查詢多行,結果是一個pd.DataFrame
print(df.loc[1:3])
print(type(df.loc[1:3]))#<class 'pandas.core.frame.DataFrame'>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM