Pandas 如何创建一个空的DataFrame并向其添加行和列

Pandas 如何创建一个空的DataFrame并向其添加行和列

Pandas 是一个用于数据操作和分析的Python库。它建立在numpy库的基础上,并提供了一个高效的dataframe实现。Dataframe是一个二维数据结构。在dataframe中,数据以行和列的形式对齐在表格中。它类似于电子表格或 SQL 表或R中的 data.frame 。最常用的pandas对象是 DataFrame 。通常,数据是从其他数据源(如 csv、excel SQL等)导入到pandas dataframe中的。在本教程中,我们将学习如何创建一个空的dataframe以及如何在其中添加行和列。

语法

要创建一个空的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方法将行添加到数据框中。ignore_index参数用于在添加行后重置数据框的索引。concat方法的第一个参数是要与列名连接的数据框列表。

在添加行后,ignore_index参数用于重置数据框的索引。Pandas.Series方法可用于从列表创建系列。列值也可以作为列表传递,而不使用Series方法。

示例1

在这个示例中,我们创建了一个空的数据框。然后,我们通过将列名[‘Name’,’Age’]传递给DataFrame构造函数的columns参数在数据框中创建了2列。接下来,我们使用pd.concat方法向数据框添加了3行[‘John’,25],[‘Mary’,30],[‘Peter’,28]。在添加行后,ignore_index参数设置为True以重置数据框的索引。

然后,我们向数据框添加了2列[‘Salary’,’City’]。’Salary’列的值被作为一个Series传递。系列的索引被设置为数据框的索引。’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

在这个示例中,我们创建了一个空的数据帧。然后,通过将列名[‘Batsman’,’Runs’,’Balls’,’4s’,’6s’]传递给DataFrame构造函数的列参数,在数据帧中创建了5列。接下来,我们使用pd.concat方法将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 库创建一个空的数据框,并如何添加行和列。我们还学习了 Pandas 库中一些方法的语法和参数。对于那些刚开始使用 Pandas 库操作数据框的人来说,这些学习将非常有帮助。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Pandas 精选笔记