pandas基本用法(一)
阿新 • • 發佈:2019-02-12
- 讀取csv檔案
import pandas
food_info = pandas.read_csv(file_name)# 返回一個DataFrame物件
n_rows = food_info.head(n) #獲取前n行資料,返回的依舊是個DataFrame
column_names = food_info.columns #獲取所有的列名
dimensions = food_info.shape #獲取資料的shape
- Index
預設情況下,使用pandas.read_csv()
讀取csv
檔案的時候,會預設將資料的第一行當做列標籤,還會為每一行新增一個行標籤。我們可以使用這些標籤來訪問DataFrame中的資料。
- Series物件
pandas
的核心元件,構成DataFrame
的基本單元。
- 如何選擇一行資料
data = food_info.loc[0] #使用loc[n]獲取第n行資料,如果只是獲取一行資料的話,返回Series
#如何選擇多行呢,和numpy的語法是一樣的
datas = food_info.loc[1:2] #返回DataFrame,返回行標籤為1,2的,這個和numpy不一樣,而且loc[]也不支援-n
data = food_info.loc[i][j] # i-th row, j-th column
- 使用
DataFrame.dtypes
- 使用
DataFrame[indices]
獲取列資料。注意,要是獲取多個列的話selenium_thiamin = food_info[["Selenium_(mcg)",'Thiamin_(mg)']]
,不要少了箇中括號。
關於len()
len(data_frame) # 是data_frame的行數
len(data_frame.loc[0]) #是data_frame的列數
關於set()
set(data_frame) # 返回column name
set(data_frame["column1"]) # 返回第一列中不重複的值
set(data_frame.loc[0 ]) #返回第一行中不重複的值
如何遍歷 DataFrame 中的資料
# 使用 for 是不可行的!!!!!!!!!!!!!!!!!!!!!
for data in data_frame:
pass
# 使用 len 和 loc
for i in range(len(data_frame)):
cur_data = data_frame.loc[i]
# 使用 .iteriterms()
for i, series in df.iteritems():
print(i, ":", type(series))
如何儲存成 CSV 檔案
使用 data_frame.to_csv()
。為了使用這個方法,首先要建立一個 DataFrame
例項。
import pandas as pd
# from_dict, 使用 dict 把每列的資料準備好
predictions = {}
predictions["id"] = ["001", "002"]
predictions["value"] = ["hello boy", "hello world"]
dataFrame = pd.DataFrame.from_dict(predictions)
print(dataFrame)
# from_record, 準備好每一行的資料
predictions2 = []
predictions2.append(["001", 0, 0])
predictions2.append(["002", 0, 0])
dataFrame2 = pd.DataFrame.from_records(predictions2, columns=["id", "is_man", "is_good"])
print(dataFrame2)
判斷獲取的值是否為 nan
res = series['val']
pd.isna(res) # nan 返回 True 否則返回 False