第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

Pandas 新增數(shù)據(jù)

1. 前言

上一節(jié)我們講述了 Pandas 查詢數(shù)據(jù)的方法,以及查詢條件的幾種方式,能根據(jù)我們業(yè)務(wù)的需要,查詢出我么需要的數(shù)據(jù)集。而有時(shí)候我們的數(shù)據(jù)集在數(shù)量上或者內(nèi)容上不能夠滿足我們的分析需要,我們要對(duì)數(shù)據(jù)進(jìn)行擴(kuò)充,那在 Pandas 中我們?cè)撛趺床僮髂兀?/p>

Pandas 中為 DataFrame 提供了新增數(shù)據(jù)列和新增數(shù)據(jù)行的幾種方式,本小節(jié)我們將分別講述新增數(shù)據(jù)列和數(shù)據(jù)行的具體操作。

2. 新增數(shù)據(jù)列

2.1 直接新增數(shù)據(jù)列

直接新增數(shù)據(jù)列,需要傳入新增的列索引名,以及該列每行的數(shù)據(jù)項(xiàng)值:

# 導(dǎo)入pandas包
import pandas as pd
# 指定導(dǎo)入的文件地址 默認(rèn)是file,這里的路徑中省略了 file:/
data_path="C:/Users/13965/Documents/myFuture/IMOOC/pandasCourse-progress/data_source/第7,8,9,10小節(jié)/execl數(shù)據(jù)demo.xlsx"
data = pd.read_excel(data_path)
print(data)

# --- 輸出結(jié)果 ---
    編程語言   推出時(shí)間    價(jià)格              主要?jiǎng)?chuàng)始人
0    java  199545.6               James Gosling
1  python  199167.0            Guido van Rossum
2       C  197233.9  Dennis MacAlistair Ritchie
3      js  199559.5                Brendan Eich
4     php  201269.9              Rasmus Lerdorf
5     C++  198375.0           Bjarne Stroustrup

# 新增數(shù)據(jù)列操作
data["new_colume"]=["a","b","c","d","e","f"]
print(data)

# --- 輸出結(jié)果 ---
     編程語言   推出時(shí)間    價(jià)格            主要?jiǎng)?chuàng)始人       new_colume
0    java  199545.6               James Gosling          a
1  python  199167.0            Guido van Rossum          b
2       C  197233.9  Dennis MacAlistair Ritchie          c
3      js  199559.5                Brendan Eich          d
4     php  201269.9              Rasmus Lerdorf          e
5     C++  198375.0           Bjarne Stroustrup          f

輸出解析:我們通過操作新增 new_colume 列,并指定行值分別為a,b,c,d,e,f,通過輸出結(jié)果可以看到,在數(shù)據(jù)集的最后一列新增了數(shù)據(jù)列內(nèi)容。

2.2 insert() 方法新增數(shù)據(jù)列

insert(loc, column, value, allow_duplicates=False) 函數(shù)可以實(shí)現(xiàn)向指定的列中添加數(shù)據(jù):

參數(shù)名 說明
loc 指定插入列的序號(hào),從0開始
column 列索引名
value 插入的列數(shù)據(jù)
duplicates 是否允許插入已有的數(shù)據(jù),如果為 False 插入重復(fù)數(shù)據(jù)會(huì)報(bào)錯(cuò)
# 導(dǎo)入pandas包
import pandas as pd
# 指定導(dǎo)入的文件地址 默認(rèn)是file,這里的路徑中省略了 file:/
data_path="C:/Users/13965/Documents/myFuture/IMOOC/pandasCourse-progress/data_source/第7,8,9,10小節(jié)/execl數(shù)據(jù)demo.xlsx"
data = pd.read_excel(data_path)
print(data)

# --- 輸出結(jié)果 ---
    編程語言   推出時(shí)間    價(jià)格              主要?jiǎng)?chuàng)始人
0    java  199545.6               James Gosling
1  python  199167.0            Guido van Rossum
2       C  197233.9  Dennis MacAlistair Ritchie
3      js  199559.5                Brendan Eich
4     php  201269.9              Rasmus Lerdorf
5     C++  198375.0           Bjarne Stroustrup


# 通過 insert() 函數(shù),在第1列插入列索引為 new 的數(shù)據(jù)列
data.insert(0,"new",["a","b","c","d","e","f"], allow_duplicates=False)
print(data)

# --- 輸出結(jié)果 ---
   new    編程語言   推出時(shí)間    價(jià)格          主要?jiǎng)?chuàng)始人
0   a    java  199545.6               James Gosling
1   b  python  199167.0            Guido van Rossum
2   c       C  197233.9  Dennis MacAlistair Ritchie
3   d      js  199559.5                Brendan Eich
4   e     php  201269.9              Rasmus Lerdorf
5   f     C++  198375.0           Bjarne Stroustrup

輸出解析:通過 insert() 函數(shù)操作,我們看到輸出結(jié)果在第一列新增了數(shù)據(jù)列內(nèi)容。

3. 新增數(shù)據(jù)行

3.1 loc() 方法新增數(shù)據(jù)行

通過 loc() 函數(shù)指定要新增的行索引值,傳入對(duì)應(yīng)的列數(shù)據(jù)內(nèi)容即可:

# 導(dǎo)入pandas包
import pandas as pd
# 指定導(dǎo)入的文件地址 默認(rèn)是file,這里的路徑中省略了 file:/
data_path="C:/Users/13965/Documents/myFuture/IMOOC/pandasCourse-progress/data_source/第7,8,9,10小節(jié)/execl數(shù)據(jù)demo.xlsx"
data = pd.read_excel(data_path)
print(data)

# --- 輸出結(jié)果 ---
     編程語言   推出時(shí)間    價(jià)格             主要?jiǎng)?chuàng)始人
0    java  199545.6               James Gosling
1  python  199167.0            Guido van Rossum
2       C  197233.9  Dennis MacAlistair Ritchie
3      js  199559.5                Brendan Eich
4     php  201269.9              Rasmus Lerdorf
5     C++  198375.0           Bjarne Stroustrup

# 通過 loc() 傳入插入的行索引為 6 ,右側(cè)為插入的列數(shù)據(jù)內(nèi)容
data.loc[6]=["ss","dd","23.1","ff"]
print(data)

# --- 輸出結(jié)果 ---
     編程語言   推出時(shí)間    價(jià)格            主要?jiǎng)?chuàng)始人
0    java  199545.6               James Gosling
1  python  199167            Guido van Rossum
2       C  197233.9  Dennis MacAlistair Ritchie
3      js  199559.5                Brendan Eich
4     php  201269.9              Rasmus Lerdorf
5     C++  198375           Bjarne Stroustrup
6      ss     dd  23.1                          ff

輸出解析:這里可以看到在原數(shù)據(jù)的基礎(chǔ)上新增了行索引為 6 的數(shù)據(jù)行。但這里要注意,如果行索引指定的是已存在行索引,則不會(huì)進(jìn)行數(shù)據(jù)行的插入,而是替換了該數(shù)據(jù)行的數(shù)據(jù)值,如下程序演示:

# 這里我們指定行索引為 5 的值
data.loc[5]=["ss","dd","23.1","ff"]
print(data)

# --- 輸出結(jié)果 ---
     編程語言   推出時(shí)間    價(jià)格            主要?jiǎng)?chuàng)始人
0    java  199545.6               James Gosling
1  python  199167            Guido van Rossum
2       C  197233.9  Dennis MacAlistair Ritchie
3      js  199559.5                Brendan Eich
4     php  201269.9              Rasmus Lerdorf
5      ss     dd  23.1                          ff

輸出解析:通過結(jié)果可以看到,行索引為5的原數(shù)據(jù)為: C++ ,1983年,75,Bjarne Stroustrup,通過操作并沒有新增數(shù)據(jù)行,而是將該行的數(shù)據(jù)改為了:ss,dd,23.1, ff

3.2 append() 方法新增數(shù)據(jù)行

append(other, ignore_index=False, verify_integrity=False) 是用來在數(shù)據(jù)表尾新增數(shù)據(jù)行,并返回新增后的數(shù)據(jù)對(duì)象,該方法不僅僅適用于 DataFrame 結(jié)構(gòu)的數(shù)據(jù),還可以用于 Series 數(shù)據(jù)的追加。

參數(shù)名 說明
other 要添加的數(shù)據(jù),可以是 Series、list、dict、dataframe 等等;
ignore_index 新增了數(shù)據(jù)后,會(huì)重新設(shè)置索引,忽略舊的索引;
verify_integrity 當(dāng)為 True 時(shí),如果和原數(shù)據(jù)的索引值相同,將會(huì)報(bào)錯(cuò);
# 新建一個(gè) DataFrame 對(duì)象
data_new= pd.DataFrame([["11","22","33.5","44"], ["55","66","77.7","88"]], 
                       columns=["編程語言","推出時(shí)間","價(jià)格","主要?jiǎng)?chuàng)始人"])
# 對(duì) data 使用 append 操作,傳入新創(chuàng)建的 DataFrame 對(duì)象
result_data=data.append(data_new)
print(result_data)

# --- 輸出結(jié)果 ---
     編程語言   推出時(shí)間    價(jià)格                       主要?jiǎng)?chuàng)始人
0    java  199545.6               James Gosling
1  python  199167            Guido van Rossum
2       C  197233.9  Dennis MacAlistair Ritchie
3      js  199559.5                Brendan Eich
4     php  201269.9              Rasmus Lerdorf
5     C++  198375           Bjarne Stroustrup
0      11     22  33.5                          44
1      55     66  77.7                          88

輸出解析:這里可以看到通過 append() 操作是將兩個(gè)數(shù)據(jù)集進(jìn)行行的合并,在 data 數(shù)據(jù)集的基礎(chǔ)上,后面合并 data_new 數(shù)據(jù)行。這里的索引并不會(huì)產(chǎn)生沖突,因?yàn)槲覀儧]有設(shè)置 verify_integrity=True(默認(rèn)的是為 False),如果我們?cè)O(shè)置了 ignore_index= True ,合并后生成的新的數(shù)據(jù)集索引值會(huì)重新排列,如下操作所示:

data_new= pd.DataFrame([["11","22","33.5","44"], ["55","66","77.7","88"]], 
                       columns=["編程語言","推出時(shí)間","價(jià)格","主要?jiǎng)?chuàng)始人"])
result_data=data.append(data_new, ignore_index= True)
print(result_data)

# --- 輸出結(jié)果 ---
   編程語言   推出時(shí)間    價(jià)格                       主要?jiǎng)?chuàng)始人
0    java  199545.6               James Gosling
1  python  199167            Guido van Rossum
2       C  197233.9  Dennis MacAlistair Ritchie
3      js  199559.5                Brendan Eich
4     php  201269.9              Rasmus Lerdorf
5     C++  198375           Bjarne Stroustrup
6      11     22  33.5                          44
7      55     66  77.7                          88

輸出解析:這里可以看到通過設(shè)置 ignore_index= True 屬性,返回的數(shù)據(jù)對(duì)象的行索引從0開始重新進(jìn)行了排列。

3.小結(jié)

本節(jié)課我們主要學(xué)習(xí)了新增數(shù)據(jù)行和數(shù)據(jù)列的幾種方式,以及新增操作過程中需要注意的地方。本節(jié)課程的重點(diǎn)如下:

  • 直接新增數(shù)據(jù)列的操作方法;
  • insert() 方法新增數(shù)據(jù)列的操作以及與直接新增方式的不同;
  • loc() 新增數(shù)據(jù)行的操作;
  • append() 新增數(shù)據(jù)行的操縱以及與 loc() 操作之間的不同。

圖片描述

Tips:想要學(xué)習(xí)更多Pandas相關(guān)知識(shí),可以點(diǎn)擊
Pandas 修改數(shù)據(jù)
Pandas 刪除數(shù)據(jù)
Pandas 查詢數(shù)據(jù)