如何在Pandas中創建空DataFrame并添加行和列?
Pandas是一個Python庫,可以方便地處理海量數據。愛掏網 - it200.com在Pandas中,DataFrame是一種二維表格數據結構,可以看做是由多個Series組成的,每個Series代表了一列數據。愛掏網 - it200.com在實際的數據處理中,我們有時需要創建一個空的DataFrame,并動態地添加行和列。愛掏網 - it200.com本文將介紹如何在Pandas中創建空的DataFrame,并演示如何添加行和列。愛掏網 - it200.com
在Pandas中,創建一個空的DataFrame非常簡單,只需要調用DataFrame
構造函數即可,不過需要注意的是,創建空的DataFrame需要指定列名和數據類型。愛掏網 - it200.com
import pandas as pd
# 創建空的DataFrame
df = pd.DataFrame(columns=['name', 'age', 'gender'], dtype=int)
# 查看DataFrame的信息
print(df.info())
輸出結果為:
<class 'pandas.core.frame.DataFrame'>
Index: 0 entries
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 name 0 non-null int64
1 age 0 non-null int64
2 gender 0 non-null int64
dtypes: int64(3)
memory usage: 0.0+ bytes
None
可以看到,創建的DataFrame沒有任何行數據,但是已經定義好了三列,分別為name
、age
和gender
,數據類型為整型。愛掏網 - it200.com注意,這里的列名和數據類型是可選的,如果不指定的話,Pandas會自動進行推斷,但是推斷的結果可能不是我們期望的。愛掏網 - it200.com因此,建議在創建空的DataFrame時,明確指定列名和數據類型。愛掏網 - it200.com
添加行
在上面的示例中,我們創建了一個空的DataFrame,接下來我們將演示如何添加行數據。愛掏網 - it200.com在Pandas中,添加行數據有兩種方式,一種是通過loc
屬性,另一種是通過append
方法。愛掏網 - it200.com
通過loc
屬性添加行
loc
是Pandas中一個用于標簽索引的屬性,通過它可以方便地添加一行數據。愛掏網 - it200.com示例如下:
import pandas as pd
# 創建空的DataFrame
df = pd.DataFrame(columns=['name', 'age', 'gender'])
# 通過loc屬性添加行數據
df.loc[0] = ['Alice', 18, 'female']
df.loc[1] = ['Bob', 21, 'male']
df.loc[2] = ['Cathy', 25, 'female']
# 查看DataFrame的內容
print(df)
輸出結果為:
name age gender
0 Alice 18 female
1 Bob 21 male
2 Cathy 25 female
可以看到,我們成功地向空的DataFrame中添加了三行數據。愛掏網 - it200.com
需要注意的是,在使用loc
屬性添加行數據時,需要指定行標簽,也就是index
。愛掏網 - it200.com如果行標簽已經存在,則會修改相應行的數據;如果行標簽不存在,則會新建一行,并填充數據。愛掏網 - it200.com
通過append
方法添加行
另一種添加行數據的方式是使用append
方法。愛掏網 - it200.comappend
方法可以接受一個字典、一個Series或一個DataFrame作為參數,它會將參數中的數據作為一行添加到原DataFrame的末尾。愛掏網 - it200.com示例如下:
import pandas as pd
# 創建空的DataFrame
df = pd.DataFrame(columns=['name', 'age', 'gender'])
# 通過append方法添加行數據
df = df.append({'name': 'Alice', 'age': 18, 'gender': 'female'}, ignore_index=True)
df = df.append({'name': 'Bob', 'age': 21, 'gender': 'male'}, ignore_index=True)
df = df.append({'name': 'Cathy', 'age': 25, 'gender': 'female'}, ignore_index=True)
# 查看DataFrame的內容
print(df)
輸出結果同上。愛掏網 - it200.com
需要注意的是,在使用append
方法添加行數據時,需要將ignore_index
參數設置為True,這是因為
append方法默認會保留原DataFrame的索引,如果不將
ignore_index設置為
True`,則新添加的行數據的索引會和原DataFrame的索引重復,導致索引沖突,因此需要將新添加的行數據的索引重新編號。愛掏網 - it200.com
添加列
除了添加行數據,有時我們也需要添加列數據。愛掏網 - it200.com在Pandas中,添加列數據非常簡單,只需要通過列名即可。愛掏網 - it200.com示例如下:
import pandas as pd
# 創建空的DataFrame
df = pd.DataFrame(columns=['name', 'age', 'gender'])
# 添加列數據
df['height'] = [170, 175, 165]
# 查看DataFrame的內容
print(df)
輸出結果為:
name age gender height
0 NaN NaN NaN 170
1 NaN NaN NaN 175
2 NaN NaN NaN 165
可以看到,我們成功地向空的DataFrame中添加了一列數據,列名為height
,數據分別為170、175、165。愛掏網 - it200.com