1. 程式人生 > >Pandas索引與計算

Pandas索引與計算

(1)獲取某行資料 

如:

獲取第0行:file1.loc[0]

獲取第0行到第3行資料: file1.loc[0:3]

獲取第2行第5行和第10行的資料:  file1.loc[[2,5,10]]

                                                       或者data_flag  = [2,5,10]           print(file1.loc[data_flag])

 

(2)獲取某列的資料

如:

獲取名為NDB_No的整列:   ndb_col = file1["NDB_No"]               #NDB_No為列名

獲取某兩列資料:
columns = ["Zinc_(mg)", "Copper_(mg)"]
print(file1[columns])

 

獲取列名以"(g)"結尾的列:

import pandas

file1 = pandas.read_csv(r"...檔案地址..")

col_names = file1.columns.tolist()              #以一行的形式讀取出檔案列名

pram_columns = []

for c in col_names:

    if c.endswith("(g)"):

        pram_columns.append(c)
gram_df = file1[pram_columns]

print(gram_df.head(3))

 

(3)將某列資料整體乘除一個值

import pandas

food_info = pandas.read_csv(r"...檔案地址...")

div_1000  = food_info["Iron_(mg)"] / 1000                  #將這一列所有資料除以1000

print(div_1000)

 

(4)兩列中對應數值相乘除

import pandas

food_info = pandas.read_csv(r"E:\PyCharm\food_info.csv")

water_energy = food_info["Water_(g)"]*food_info["Energ_Kcal"]            #兩列中對應位置數值相乘

 

(5)生成新的一列加入到列表當中

import pandas 

food_info = pandas.read_csv[r"E:\PyCharm\food_info.csv"]

iron_gram = food_info["iron_(mg)"] / 1000                                       #將原來的列除以1000生成新的一列

food_info["iron_(g)"] = iron_gram                                                     #將新的一列加入到列名為iron_(g)的列中

print(food_info.shape)                                                                       #查看錶格中有多少行多少列

 

(6)加減乘除操作

參考(3),(4)舉一反三吧   

還是舉個例子吧 >_<

import pandas
food_info = pandas.read_csv(r"E:\PyCharm\food_info.csv")
weighted_protein = food_info["Protein_(g)"]*2
weighted_fat = -0.75 * food_info["Lipid_Tot_(g)"]
initial_rating = weighted_protein + weighted_fat
print(initial_rating)

 

(7)求出列中的最大值

import pandas 

food_info = pandas.read_csv(r"E:\PyCharm\food_list.csv")

max_calories  = food_info["Energ_Kcal"].max()                                 #求出這一列當中最大的之值

可以讓某列除以最大值,算出資料和最大值的比率。