日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

【Pandas库】(3) DataFrame的创建方法及基本操作

發(fā)布時間:2023/11/27 生活经验 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Pandas库】(3) DataFrame的创建方法及基本操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????????各位同學好,今天給大家介紹一下Pandas庫中DataFrame類型數據的創(chuàng)建方法和基本操作。
文章內容如下:

(1)使用字典類創(chuàng)建。

? ? ? ? 字典類有:①數組、列表、元組構成的字典;②Series構造的字典;③字典構造的字典。

(2)使用列表類創(chuàng)建。

? ? ? ? 列表類有:①二維數組;②字典構造的列表;③Series構成的列表

(3)基本操作。

? ? ? ??①查看索引;②指定索引;③轉置操作;④通過索引獲取數據;⑤追加一列;⑥刪除列

首先,我簡單介紹一下DataFrame:
① DataFrame數據結構可以理解為python版的excel表格
② 是表格型數據結構,它包含一組有序的列,每列可以是不同類型的值。
③ DataFrame既有行索引,又有列索引。每列數據可以是不同類型。
④ 可以看作是由Series組成的字典,共用一個索引,數據以二維結構存放。


1. 創(chuàng)建方法--字典類

1.1 使用數組、列表或元組構成的字典構造DataFrame

創(chuàng)建方法: pd.DataFrame(字典名)

創(chuàng)建后,列索引對應的是字典中的標簽名,行索引對應默認值。

import pandas as pd
# 數組、列表或元組構成的字典構造dataframe
a1 = {"a":[1,2,3,4],"b":(5,6,7,8),"c":np.arange(9,13)}  #建立字典
frame1 = pd.DataFrame(a1)  # 構造dataframe

?1.2 使用Series構造的字典構造DataFrame

創(chuàng)建方法同 pd.DataFrame(字典名),展示如下。

字典中標簽'a'和'b'對應的值為Series類型。np.arange(3)是利用numpy庫創(chuàng)建一個數組[0,1,2];通過pd.Series(數組)將其轉化為Series類型的[0,1,2]。

# series構造的字典構造dataframe
pd1 = pd.DataFrame({"a":pd.Series(np.arange(3)),"b":pd.Series(np.arange(3,5))})

1.3 使用字典構造的字典(字典嵌套)來構造DataFrame

創(chuàng)建方法同 pd.DataFrame(字典名),展示如下。

外層字典的標簽名為'a','b','c',且標簽'a'對應的值是一個字典類型,標簽名為'apple','banana',值分別為3.6,5.7。因此a5可看成是由兩層字典構成,其本身是一個字典類型標簽對應的值也是字典類型

# 通過字典構造的字典(字典嵌套)來構造dataframe
a5 = {"a":{"apple":3.6,"banana":5.7},"b":{"apple":2.1,"banana":8.2},"c":{"apple":5.2}}
pd2 = pd.DataFrame(a5)

2. 創(chuàng)建方法--列表類

2.1 使用二維數組構造DataFrame

創(chuàng)建方法: pd.DataFrame(列表)

arr1是利用numpy庫產生的由1到12的一維數組,通過reshape(行數,列數)改變數組形狀,要求改變后數組的元素個數與原始數組的元素個數相同。

import numpy as np
# 二維數組構造dataframe
arr1 = np.arange(1,13).reshape(4,3)
frame4 = pd.DataFrame(arr1)
# 指定行列索引,必須與原來的列表,行數和列數相同

2.2 使用字典構造的列表創(chuàng)建DataFrame

創(chuàng)建方法同上:pd.DataFrame(列表)

列表l1是由三個字典構成。創(chuàng)建后,字典內部的key變成列索引。一定要和由字典嵌套創(chuàng)建的DataFrame區(qū)分開來。

# 字典構造的列表構造dataframe
l1 = [{"apple":3.6,"banana":5.0},{"apple":2,"banana":8},{"apple":1.8}]
pd3 = pd.DataFrame(l1)

?2.3 使用Series構成的列表構造DataFrame

創(chuàng)建方法同上:pd.DataFrame(列表)

列表l2由兩個Series類型數據構成。np.random.rand(n)表示隨機生成n個0到1之間的數,構成數組,再通過pd.Series()轉換成Series類型數據。

# series構成的列表構造dataframe
l2 = [pd.Series(np.random.rand(3)),pd.Series(np.random.rand(2))]
pd4 = pd.DataFrame(l2)

?3. 基本操作

3.1 查看索引

查看行索引: 變量名.index
查看列索引: 變量名.columns
查看值:? ? ? ? 變量名.values

a2 = frame1.index     # 查看行索引
a3 = frame1.columns   # 查看列索引
a4 = frame1.values    # 查看value值

?3.2 創(chuàng)建時指定索引排序

指定行索引: pd.DataFrame(字典,index=[索引名])
指定列索引: pd.DataFrame(字典,index=[索引名],columns=[索引名])

此處指定的列索引名必須是原字典中存在的索引,如果不存在,則該列索引名對應的值是nan

a1 = {"a":[1,2,3,4],"b":(5,6,7,8),"c":np.arange(9,13)}
frame1 = pd.DataFrame(a1)
# 指定index行索引
frame2 = pd.DataFrame(a1,index=["Alex","Block","Cici","Dalin"])
# 指定columns列索引
frame3 = pd.DataFrame(a1,index=["Alex","Block","Cici","Dalin"],columns=["a","b","c","d"])

?3.3 轉置操作

方法:變量名.T? ? ?# 行和列互換位置

pd5 = pd.DataFrame(np.arange(1,10).reshape(3,3),index=["a","c","b"],columns=["A","B","C"])
# 轉置操作,行與列轉置,和numpy一樣
a6 = pd5.T

?3.4 通過索引獲取列數據

方法:變量名[列索引名] ? ?

獲取索引名所在列的數據,返回結果是Series類型。對行操作涉及高級索引,本文章只介紹基本操作,其余后續(xù)再介紹。

pd5 = pd.DataFrame(np.arange(1,10).reshape(3,3),index=["a","c","b"],columns=["A","B","C"])
# 通過索引獲取列數據
gt = pd5["A"]

?3.5 追加一列

方法:?變量名[列索引名]=自定義值

此處的列索引名為原DataFrame中不存在的索引名,才能在原數據最后一列追加一組值。如果此處的索引名和原數據中的索引名重復,則會更改原數據中的值。

pd5 = pd.DataFrame(np.arange(1,10).reshape(3,3),index=["a","c","b"],columns=["A","B","C"])
# 追加一列
pd5["D"] = 9  #該列所有數都是9
pd5["E"] = [1,2,3]  #該列上各行分別是1,2,3
pd5['A'] = [999,888,777]  #更改原pd5上'A'列的值

3.6 刪除一列

方法: del(變量名[列索引名]) ? ? # 刪除指定列的所有數據
?

# 刪除列
del(pd5["D"])

總結

以上是生活随笔為你收集整理的【Pandas库】(3) DataFrame的创建方法及基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。