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

pythonpandasserver side programmingprogramming

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

语法

要创建一个空数据框并将行和列附加到其中,您需要遵循以下语法 -

# 创建空数据框的语法
df = pd.DataFrame()

# 将行附加到数据框的语法
df = pd.concat([df, pd.DataFrame([['row1_col1', 'row1_col2', 'row1_col3']], columns=['col1', 'col2', 'col3'])], ignore_index=True)

# 将列附加到数据框的语法
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 传递。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 构造函数的 columns 参数,在数据框中创建了 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 方法、它们的语法以及它们接受的参数。这些学习对于开始使用 Python 中的 Pandas 库操作数据框的人来说非常有帮助。


相关文章