如何在Pandas中创建空DataFrame并添加行和列?
Pandas 是用于数据操作和分析的Python库。它建立在NumPy库的基础上,并提供了数据帧的有效实现。数据帧是一个二维数据结构,在表格形式中以行和列对齐数据。它类似于电子表格或SQL表或R中的data.frame。最常用的pandas对象是 DataFrame 。通常,数据是从其他数据源(如 CSV,Excel , SQL等)导入到pandas dataframe中。在本教程中,我们将学习如何在Pandas中创建空DataFrame并添加行和列。
语法
要创建空数据框架并将行和列添加到其中,您需要按照以下语法操作 –
# 创建空数据框架的语法
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方法将行附加到DataFrame。 ignore_index参数用于在附加行后重置DataFrame的索引。 concat方法的第一个参数是要与列名连接的数据框架的列表。
在附加行后,使用ignore_index参数重置DataFrame的索引。 Pandas.Series方法可用于从列表创建系列。也可以将列值作为列表传递,而不必使用Series方法。
示例1
在此示例中,我们创建了一个空数据框架。然后,通过将列名称[‘Name’, ‘Age’]传递给DataFrame构造函数的columns参数,在数据框架中创建了2列。接下来,我们使用pd.concat方法将3行 [‘John’,25]、[‘Mary’,30]、[‘Peter’,28]附加到数据框架中。将ignore_index参数设置为True,以在附加行后重置DataFrame的索引。
然后,我们将2列 [‘Salary’,’City’]附加到数据框架中。将’Salary’列的值作为系列传递。系列的索引设置为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
在这个例子中,我们创建了一个空数据框架。然后,通过将列名称[‘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’]附加到数据框架中。
“打击率”列的列值被传递为系列。 “平均”列的列值作为列表传递。该列表的索引是默认索引。
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 库开始操作数据帧的人来说,这种学习非常有帮助。