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() #求出這一列當中最大的之值
可以讓某列除以最大值,算出資料和最大值的比率。