使用python對csv或者是excel檔案進行處理的時候,經常會使用到第三方庫:pandas,並且在pandas中經常會使用到的是表結構的資料結構:dataframe(pandas讀取csv檔案返回的就是dataframe資料型別),下面是關於dataframe的一些基本操作
建立dataframe有以下兩種常用的方法進行建立:① 列表 ② 字典 ③隨機數組
建立data的時候需要呼叫pandas中的dataframe函式並且一般需要傳入data、index、columns引數,data表示資料,index表示行標籤,column表示列標籤
列表:一般使用一維列表或者是二維列表建立
arr = [1, 2, 4, 6, 6]
index = [0, 1, 2, 3, 4]
columns = ["colum"]
# data表示資料, index表示行標籤, column表示列標籤
data = pd.dataframe(data=arr, index=index, columns=columns)
print(data)
# 使用二維列表來dataframe
arr = [[1, 2, 3], [3, 4, 5], [4, 5, 6]]
index = [0, 1, 2]
columns = list("abc")
data = pd.dataframe(data=arr, index=index, columns=columns)
print(data)
index = [1, 2, 3]
columns = ["fruit", "price"]
data = pd.dataframe(data=arr, index=index, columns=columns)
print(data)
字典:使用字典建立dataframe的時候鍵表示的列索引
data = pd.dataframe(, index=list('ab'))
print(data)
data = pd.dataframe([, ])
print(data)
numpy陣列:使用numpy隨機數組建立
# 使用numpy建立dataframe
data = np.random.randn(4, 5)
index = [i for i in range(4)]
columns = list("abcde")
data = pd.dataframe(data=data, index=index, columns=columns)
print(data)
dtypes 列資料型別
ndim 維度
index 行索引
columns 列索引
values 維ndarry的陣列
data = pd.dataframe(, index=list('ab'))
print(data)
print(data.sort_values(by="age", ascending=false))
loc可以通過行標籤獲取某一行或者是某幾行(切片操作)的資料,通過行標籤與列標籤獲取某一行某一列的資料,iloc通過行下標獲取某一行、某幾行的資料,通過行下標與列下標獲取某一行某一列的資料,iloc只能夠傳入整數或者是切片(前面的i表示的是整數),不能夠傳遞行標籤或者是列標籤
data = pd.dataframe(, index=list('ab'))
print(data)
# 通過行標籤獲取某一行的值
print(data.loc["a"])
# 獲取行標籤為0列標籤為name的資料
print(data.loc[0, "name"])
# 獲取第0列
print(data.iloc[:, [0]])
# 獲取第0行的資料
print(data.iloc[0])
# 使用切片獲取前兩行的資料
print(data.iloc[:2])
# 獲取第0行第1列的資料
print(data.iloc[0, 1])
data = pd.dataframe(, index=list('ab'))
print(data)
print(data["name"])
# 在沒有規定columns屬性的情況下可以使用data[列下標]來獲取對應的列
data = pd.dataframe(data=[[1, 2], [3, 4]])
print(data[0])
import pandas as pd
import numpy as np
if __name__ == '__main__':
# 1. 使用列表來建立dataframe
arr = [1, 2, 4, 6, 6]
index = [0, 1, 2, 3, 4]
columns = ["colum"]
# data表示資料, index表示行標籤, column表示列標籤
data = pd.dataframe(data=arr, index=index, columns=columns)
print(data)
# 使用二維列表來建立dataframe
arr = [[1, 2, 3], [3, 4, 5], [4, 5, 6]]
index = [0, 1, 2]
columns = list("abc")
data = pd.dataframe(data=arr, index=index, columns=columns)
print(data)
index = [1, 2, 3]
columns = ["fruit", "price"]
data = pd.dataframe(data=arr, index=index, columns=columns)
print(data)
# 使用numpy建立dataframe
data = np.random.randn(4, 5)
index = [i for i in range(4)]
columns = list("abcde")
data = pd.dataframe(data=data, index=index, columns=columns)
print(data)
print("-" * 50)
# 2. 使用字典建立dadaframe, 字典的key是列索引
data = pd.dataframe(, index=list('ab'))
print(data)
data = pd.dataframe([, ])
print(data)
# 3. dataframe的基本屬性
print(data.shape[0], data.shape[1])
# dtypes列資料型別
print(data.dtypes)
print("*" * 50)
# 對某一列進行排序
print(data.sort_values(by="age", ascending=false))
# 4. 索引與切片
print(data.loc[0, "name"])
print(data.iloc[:, [0]])
print("*" * 50)
# 獲取對應的列
print(data["name"])
print("*" * 50)
import pandas as pd
import numpy as np
if __name__ == '__main__':
arr = [[1, 2], [3, 4], [5, 6]]
data = pd.dataframe(data=arr)
# print(data)
# 取出第0列中數值大於2的行, 如果在建立dataframe的時候沒有規定列標籤那麼可以使用data[n]的方式來獲取第n列的值, 如果規定了columns屬性值那麼需要使用data["列標籤"]的方式來獲取
print(data[data[0] > 2])
Pandas DataFrame用法總結
1 將某一列滿足條件的資料的所在行提取出來 df ori pd.read excel f ivf data data add yuejing time data arrange no null23.xlsx df new df ori df ori.iloc 2 0.6 將某一列滿足條件 0.6 的...
Pandas DataFrame常用方法
1 獲取列名 1.1.鍊錶推導式 語法 col for col in df 返回結果 cvr1 cvr2 cvr3 cvr4 結果型別 list 1.2.通過columns屬性 columns屬性返回index,columns.values屬性返回 numpy.ndarray,可通過 tolist ...
Pandas DataFrame 按行構建
當我們從複雜 提取出逐個樣本的特徵時,繼而構成一條樣本並組成訓練或測試集時,比較容易想到的一點就是一行一行地構建dataframe。而pandas.dataframe 容許的輸入有numpy ndarray structured or homogeneous dict,or dataframe這些 ...