如何在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'列的列值作为列表传递。

Open Compiler
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'列的列值作为列表传递。列表的索引是列表的默认索引。

Open Compiler
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的人来说,这些知识非常有用。

更新于:2023年5月11日

4K+ 浏览量

开启您的职业生涯

通过完成课程获得认证

开始学习
广告