嗨!大家好!了解完如何載入和觀察資料後,接著將開始一系列對資料內容的操作,今天的主題為「新增資料」,內容分別以Pandas兩種常見的數據結構說明,包含:
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)
輸出結果:
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)
輸出結果:
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)
輸出結果:
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)
輸出結果:
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)
輸出結果:
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)
輸出結果:
今天的內容幫大家整理 Series 和 DataFrame 兩種資料結構可能會遇到的新增操作,看到這裡,應該不難發現大致上就是利用索引、append() 或 concat()三種方法,我個人要快速操作時,會採用「單筆用索引,多筆用append()或concat()」的技巧,大家有需要不妨可以試試!
如果有任何不理解、錯誤或建議的話,可以留言給我!喜歡的話,也歡迎按讚訂閱!
我是 Eva,一位正在努力跨進資料科學領域的女子,我們下篇文章見!Bye Bye ~
【本篇文章將同步更新於個人的 Medium,期待與您的相遇!】