Pandas讀取行列資料最全方法

2022-09-25 07:33:11 字數 3949 閱讀 2177

1、讀取方法有按行(單行,多行連續,多行不連續),按列(單列,多列連續,多列不連續);部分不連續行不連續列;按位置(座標),按字元(索引);按塊(list);函式有 df.iloc(), df.loc(), df.iat(), df.at(), df.ix()。

2、轉換為df,賦值columns,index,修改新增資料,取行列索引

data =

df = pd.dataframe(data, columns=['省份', '年份', '總人數', '高考人數', '高數'],

index=['one', 'two', 'three', 'four'])

df['高數'] = ['90', '95', '92', '98']

print("行索引:{}".format(list(df.index)))

print("列索引:{}".format(list(df.columns)))

print(df.index[1:3])

print(df.columns[1])

print(df.columns[1:3])

print(df)

行索引:['one', 'two', 'three', 'four']

列索引:['省份', '年份', '總人數', '高考人數', '高數']

index(['two', 'three'], dtype='object')

年份index(['年份', '總人數'], dtype='object')

省份    年份   總人數 高考人數  高數

one    北京  2017  2200  6.3  90

two    上海  2018  1900  5.9  95

three  廣州  2019  2170  6.0  92

four   深圳  2020  1890  5.2  98

3、iloc不能通過[:, [1:3]]取連續資料,取連續資料只能通過 df[df.columns[1:4]],先獲取列索引,再取資料。

print(df['省份']) #按列名取列

print(df.省份) #按列名取列

print(df[['省份', '總人數']]) #按列名取不連續列資料

print(df[df.columns[1:4]]) #按列索引取連續列資料

print(df.iloc[:, 1]) #按位置取列

print(df.iloc[:, [1, 3]]) #按位置取不連續列資料

one      北京

two      上海

three    廣州

four     深圳

name: 省份, dtype: object

one      北京

two      上海程式設計客棧

three    廣州

four     深圳

name: 省份, dtype: object

省份   總人數

one    北京  2200

two    上海  1900

three  廣州  2170

four   深圳  1890

年份   總人數 高考人數

one    2017  2200  6.3

two    2018  1900  5.9

three  2019  2170  6.0

four   2020  1890  5.2

one      2017

two      2018

three    2019

four     2020

name: 年份, dtype: object

年份 高考人數

one    2017  6.3

two    2018  5.9

three  2019  6.0

four   2020  5.2

4、通過df.iloc(數字)取行資料,取部分行部分列時,要先寫行,再寫列;有條件的取資料

print(df[1:3]) #按行取資料,這行**結果沒在下面輸出

print(df[df.90]) #按行有條件的取資料,結果沒輸出

print(df.iloc[1]) #按行取行資料

print(df.iloc[1, 3]) #按座標取

print(df.iloc[[1], [3]]) #按座標取

print(df.loc[df.index[1:3]]) #按行索引取行,但沒必要

print(df.iloc[1:3]) #按行取連續資料

print(df.iloc[[1, 3]]) 按行取不連續資料

print(df.iloc[[1,2,3], [程式設計客棧2,4]]) 取部分行部分列資料

省份        上海

年份      2018

總人數     1900

高考人數     5.9

高數        95

name: two, dtype: object

5.9    高考人數

two  5.9

省份    年份   總人數 高考人數  高數

two    上海  2018  1900  5.9  95

three  廣州  2019  2170  6.0  92

省份    年份   總人數 高考人數  高數

two    上海  2018  1900  5.9  95

three  廣州  2019  2170  6.0  92

省份    年份   總人數 高考人數  高數

two   上海  2018  1900  5.9  95

four  深圳  2020  1890  5.2  98

總人數  高數

two    1900  95

three  2170  92

four   1890  98

5、通過df.loc索引(字元)取行資料。

print(df.loc['two'])

print(df.loc['two', '省份'])

print(df.loc['two':'three'])

print(df.loc[['one', 'three']])

print(df.loc[['one', 'three'], ['省份', '年份']])

省份        上海

年份      2018

總人數     1900

高考人數     5.9

高數        95

name: two, dtype: object

上海 程式設計客棧;      省份    年份   總人數 高考人數  高數

two    上海  2018  1900  5.9  95

three  廣州  2019  2170  6.0  92

省份    年份   總人數 高考人數  高數

one    北京  2017  2200  6.3  90

three  廣州  2019  2170  6.0  92

省份    年份

one    北京  2017

three  廣州  2019

6、ix,iat,at取行列資料,此方法不常用,可以使用上面方法即可。

print(df.ix[1:3])

print(df.ix[:, [1, 3]])

print(df.iat[1,3])

print(df.at['two', '省份'])

省份    年份   總人數 高考人數  高數

two    上海  2018  1900  5.9  95

three  廣州  2019  2170  6.0  92

年份 高考人數

one    2017  6.3

two    2018  5.9

three  2019  6.0

four   2020  5.2

5.9上海

pandas讀取資料

導庫 import pandas as pd fpath d 123.csv 讀取資料 book pd.read csv fpath 檢視全部內容 book idusename course01 張三7512 李四8023 王二8334 張華9045 小明7856 小紅7667 小七90 檢視前5行...

Pandas 資料讀取

1.讀取table 讀取普通分隔資料 read table 可以讀取txt,csv import osos.chdir f 首先設定一下讀取的路徑 data1 pd.read table data1.txt delimiter header 0 print data1 data1 pd.read t...

使用Pandas讀取資料

import pandas as pd data path datawarehouse testdata test01.csv df pd.read csv data path,sep t encoding utf 8 header name col1 col2 col3 col4 col5 指定標...