如何在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)
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
输出
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的人来说,这些知识非常有用。