如何在Pandas中建立空DataFrame並向其中追加行和列?
Pandas 是一個用於資料操作和分析的Python庫。它構建在numpy庫之上,並提供對DataFrame的高效實現。DataFrame是一個二維資料結構。在DataFrame中,資料以表格形式排列在行和列中。它類似於電子表格或SQL表,或R中的data.frame。最常用的pandas物件是DataFrame。大部分情況下,資料是從其他資料來源(例如csv、excel、SQL等)匯入到pandas DataFrame中的。在本教程中,我們將學習如何建立一個空DataFrame以及如何在Pandas中向其中追加行和列。
語法
要建立空DataFrame並向其中追加行和列,您需要遵循以下語法:
# syntax for creating an empty dataframe df = pd.DataFrame() # syntax for appending rows to a dataframe df = pd.concat([df, pd.DataFrame([['row1_col1', 'row1_col2', 'row1_col3']], columns=['col1', 'col2', 'col3'])], ignore_index=True) # syntax for appending columns to a dataframe df['col_name'] = pd.Series([col1_val1, col1_val2, col1_val3, col1_val4], index=df.index)
我們使用Pandas.concat方法向DataFrame追加行。ignore_index引數用於在追加行後重置DataFrame的索引。concat方法的第一個引數是要與列名一起連線的DataFrame列表。
ignore_index引數用於在追加行後重置DataFrame的索引。Pandas.Series方法可用於從列表建立Series。列值也可以作為列表傳遞,而無需使用Series方法。
示例1
在這個例子中,我們建立了一個空DataFrame。然後,透過將列名['Name', 'Age']傳遞給DataFrame建構函式的columns引數,我們在DataFrame中建立了2列。接下來,我們使用pd.concat方法向DataFrame追加3行['John', 25], ['Mary', 30], ['Peter', 28]。ignore_index引數設定為True,以便在追加行後重置DataFrame的索引。
然後,我們向DataFrame追加了2列['Salary', 'City']。'Salary'列的值作為Series傳遞。Series的索引設定為DataFrame的索引。'City'列的列值作為列表傳遞。
import pandas as pd df = pd.DataFrame() df = pd.DataFrame(columns=['Name', 'Age']) df = pd.concat([df, pd.DataFrame([['John', 25]], columns=['Name', 'Age'])], ignore_index=True) df = pd.concat([df, pd.DataFrame([['Mary', 30]], columns=['Name', 'Age'])], ignore_index=True) df = pd.concat([df, pd.DataFrame([['Peter', 28]], columns=['Name', 'Age'])], ignore_index=True) df['Salary'] = pd.Series([50000, 60000, 70000], index=df.index) df['City'] = ['New York', 'Los Angeles', 'Chicago'] print(df)
輸出
Name Age Salary City 0 John 25 50000 New York 1 Mary 30 60000 Los Angeles 2 Peter 28 70000 Chicago
示例2
在這個例子中,我們建立了一個空DataFrame。然後,透過將列名['Batsman', 'Runs', 'Balls', '4s', '6s']傳遞給DataFrame建構函式的columns引數,我們在DataFrame中建立了5列。接下來,我們使用pd.concat方法向DataFrame追加4行['MS Dhoni', 100, 80, 8, 1], ['Virat Kohli', 120, 100, 10, 2], ['Rohit Sharma', 100, 80, 8, 1], ['Shikhar Dhawan', 80, 60, 6, 0]。然後,我們追加了2列['Strike Rate', 'Average']。
'Strike Rate'列的列值作為Series傳遞。'Average'列的列值作為列表傳遞。列表的索引是列表的預設索引。
import pandas as pd df = pd.DataFrame() df = pd.DataFrame(columns=['Batsman', 'Runs', 'Balls', '4s', '6s']) df = pd.concat([df, pd.DataFrame([['MS Dhoni', 100, 80, 8, 1]], columns=['Batsman', 'Runs', 'Balls', '4s', '6s'])], ignore_index=True) df = pd.concat([df, pd.DataFrame([['Virat Kohli', 120, 100, 10, 2]], columns=['Batsman', 'Runs', 'Balls', '4s', '6s'])], ignore_index=True) df = pd.concat([df, pd.DataFrame([['Rohit Sharma', 100, 80, 8, 1]], columns=['Batsman', 'Runs', 'Balls', '4s', '6s'])], ignore_index=True) df = pd.concat([df, pd.DataFrame([['Shikhar Dhawan', 80, 60, 6, 0]], columns=['Batsman', 'Runs', 'Balls', '4s', '6s'])], ignore_index=True) df['Strike Rate'] = pd.Series([125, 120, 125, 133], index=df.index) df['Average'] = [100, 120, 100, 80] print(df)
輸出
Batsman Runs Balls 4s 6s Strike Rate Average 0 MS Dhoni 100 80 8 1 125 100 1 Virat Kohli 120 100 10 2 120 120 2 Rohit Sharma 100 80 8 1 125 100 3 Shikhar Dhawan 80 60 6 0 133 80
結論
我們學習瞭如何使用Python中的Pandas庫建立空DataFrame以及如何向其中追加行和列。我們還學習了一些Pandas方法、它們的語法以及它們接受的引數。對於那些開始使用Python中的Pandas庫操作DataFrame的人來說,這些知識非常有用。