pandas DataFrame的基本操作

2021-10-09 19:43:22 字數 4277 閱讀 9602

使用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這些 ...