1. 程式人生 > >Python之按行讀取DataFrame二維陣列資料

Python之按行讀取DataFrame二維陣列資料

import numpy as np
import pandas as pd

data = {"省份":['北京', "上海", "天津", "重慶", "江蘇", "浙江", "廣東"],
        "年份":[2017, 2015, 2013, 2016, 2009, 2011, 2005],
        "總人數":[2115, 2415, 1007, 5000, 6992, 36002, 82396],
        "高考人數":[6.06, 5.1, 6.21, 24.89, 36.04, 88.31, 62.38]
        }

frame1 = pd.DataFrame(data, columns=["年份", "省份","總人口","高考人數"],index=["one", "two", "three", "four", "five", "six", "seven"])
print(frame1)

輸出:

         年份  省份    總人數   高考人數
one    2017  北京   2115   6.06
two    2015  上海   2415   5.10
three  2013  天津   1007   6.21
four   2016  重慶   5000  24.89
five   2009  江蘇   6992  36.04
six    2011  浙江  36002  88.31
seven  2005  廣東  82396  62.38

data1 = frame1.head(3)#打印出前三行

data2 = frame1.tail(4)#打印出後四行

輸出前三行

data1:  年份  省份   總人數  高考人數
one    2017  北京  2115  6.06
two    2015  上海  2415  5.10
three  2013  天津  1007  6.21

輸出後四行
data2:  年份  省份    總人數   高考人數
four   2016  重慶   5000  24.89
five   2009  江蘇   6992  36.04
six    2011  浙江  36002  88.31
seven  2005  廣東  82396  62.38

data3 = frame1[1:5]#用切片輸出第二行到第五行資料
print("data3:",data3)

輸出:

data3:   年份  省份   總人數   高考人數
two    2015  上海  2415   5.10
three  2013  天津  1007   6.21
four   2016  重慶  5000  24.89
five   2009  江蘇  6992  36.04

data4 = frame1[frame1.總人數 > 2500]#取出符合條件的行(總人數大於2500)
print("data4:",data4)

輸出:

data4:  年份  省份    總人數   高考人數
four   2016  重慶   5000  24.89
five   2009  江蘇   6992  36.04
six    2011  浙江  36002  88.31
seven  2005  廣東  82396  62.38

data5 = frame1.iloc[[0,2,4]]#取出第一行和第三行及第五行
print("data4:",data5)

data4: 年份  省份   總人數   高考人數
one    2017  北京  2115   6.06
three  2013  天津  1007   6.21
five   2009  江蘇  6992  36.04

data6 = frame1.iloc[0:2,]#取出第一行和第二行
print("data6:",data6)

data6:  年份  省份   總人數  高考人數
one  2017  北京  2115  6.06
two  2015  上海  2415  5.10

data7 = frame1.loc["two":"five"]#取出第二行到第五行
print("data7:",data7)

data7:          年份  省份   總人數   高考人數
two    2015  上海  2415   5.10
three  2013  天津  1007   6.21
four   2016  重慶  5000  24.89
five   2009  江蘇  6992  36.04