iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0

  嗨!大家好!了解完如何載入和觀察資料後,接著將開始一系列對資料內容的操作,今天的主題為「新增資料」,內容分別以Pandas兩種常見的數據結構說明,包含:

  1. 新增 Series
  2. 新增 DataFrame

■ 實作|新增 Series

  Series 屬於單維度資料,一個索引搭配一個欄位的資料內容,因此,新增資料的情況皆為增加橫列(row),可分為:

1. 利用索引新增單筆資料(Add One Row)
舉例:在名為 countries 的 Series 中,新增第四筆資料(USA)

import pandas as pd
countries = pd.Series(['Taiwan','Japan','Korea'],index=[1,2,3])
# Add one row 
countries[4] = 'USA'
print(countries)

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20230922/201622386NVjIKdf4w.png

2. 利用 _append()concat() 新增多筆資料(Add Multiple Rows)
舉例:在名為 countries 的 Series 中,一次新增三筆資料(USA、Canada、UK)

import pandas as pd
countries = pd.Series(['Taiwan','Japan','Korea'],index=[1,2,3])
New = pd.Series(['USA','Canada','UK'])
# Solution1 - _append 
New_countries = countries._append(New,ignore_index=True)
# Solution2 - concat
New_countries = pd.concat([countries,New],ignore_index=True)
print(New_countries)

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20230922/20162238tcEgTkjZtG.png

■ 實作|新增 DataFrame

  DataFrame 屬於雙維度資料,具有一個索引搭配多個欄位的資料內容型態,因此,新增資料可分為增加橫列(row)、增加直行(column)、增加單筆或多筆資料,共四種情況。

1. 利用索引 loc[]_append() 新增橫列單筆資料(Add One Row)
舉例:在名為 df 的 DataFrame 中,新增單筆資料(Elsa)

import pandas as pd
data = {'name':['Alan','Chris','Dora'],
		'city':['Taipei','Tainan','Yilan'],
	    'math':[76,92,63]}
df = pd.DataFrame(data,index=[1,2,3])
# Solution1 - loc
df.loc[4] = ['Elsa','Taichung',88]
print(df)
# Solution2 - _append 
new = df._append({'name':'Elsa','city':'Taichung','math':88},ignore_index=True)

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20230922/201622382xoPYOFKvO.png

2. 利用 _append() 新增橫列多筆資料(Add Multiple Rows)
舉例:在名為 df 的 DataFrame 中,新增兩筆資料(Elsa、Ida)

import pandas as pd
data = {'name':['Alan','Chris','Dora'],
		'city':['Taipei','Tainan','Yilan'],
	    'math':[76,92,63]}
df = pd.DataFrame(data,index=[1,2,3])
# Add multiple rows
data2 = {'name':['Elsa','Ida'],
         'city':['Taichung','Hsinchu'],
         'math':[88,79]}
df2 = pd.DataFrame(data2)
new = df._append(df2,ignore_index=True)
print(new)

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20230922/20162238hvb8HjBjW3.png

3. 利用索引新增直行單筆資料(Add One Column)
舉例:在名為 df 的 DataFrame 中,新增 chinese 欄位

import pandas as pd
data = {'name':['Alan','Chris','Dora'],
        'city':['Taipei','Tainan','Yilan'],
	    'math':[76,92,63]}
df = pd.DataFrame(data,index=[1,2,3])
# Add one column : chinese
df['chinese'] = [88,75,90]
print(df)

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20230922/20162238sLgyApHADY.png

4. 利用 concat() 新增直行多筆資料(Add Multiple Columns)
舉例:在名為 df 的 DataFrame 中,新增 chinese 和 english 兩個欄位

import pandas as pd
data = {'name':['Alan','Chris','Dora'],
		'city':['Taipei','Tainan','Yilan'],
	    'math':[76,92,63]}
df = pd.DataFrame(data,index=[1,2,3])
# Add two columns : chinese、english
data2 = {'chinese':[88,75,90],'english':[82,92,82]}
df2 = pd.DataFrame(data2,index=[1,2,3])
new = pd.concat([df,df2],axis=1)
print(new)

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20230922/20162238UtM2TLJ3Cu.png

■ 結語

  今天的內容幫大家整理 Series 和 DataFrame 兩種資料結構可能會遇到的新增操作,看到這裡,應該不難發現大致上就是利用索引、append() 或 concat()三種方法,我個人要快速操作時,會採用「單筆用索引,多筆用append()或concat()」的技巧,大家有需要不妨可以試試!

如果有任何不理解、錯誤或建議的話,可以留言給我!喜歡的話,也歡迎按讚訂閱!
我是 Eva,一位正在努力跨進資料科學領域的女子,我們下篇文章見!Bye Bye ~
【本篇文章將同步更新於個人的 Medium,期待與您的相遇!】
  


上一篇
Day 6|實戰讀取並觀察外部資料
下一篇
Day 8|資料運算的加減乘除
系列文
Pandas|資料前處理工具 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言