📅  最后修改于: 2023-12-03 14:49:26.514000             🧑  作者: Mango
在使用 Python 进行数据分析的过程中,我们经常需要创建新的数据框(DataFrame)用于存储分析结果或将数据重组。本文将介绍如何基于现有数据框创建新的数据框,以及如何操作新数据框来满足我们的需求。
一种基于现有数据框创建新数据框的方式是按列选择。例如我们有一个数据框 df,它包含了学生的成绩和课程信息:
import pandas as pd
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'math': [90, 85, 80, 95],
'english': [95, 90, 85, 80],
'science': [80, 85, 90, 95],
'course': ['math', 'english', 'science', 'math']
})
print(df)
输出:
name math english science course
0 Alice 90 95 80 math
1 Bob 85 90 85 english
2 Charlie 80 85 90 science
3 David 95 80 95 math
我们可以通过选择列来创建新的数据框。例如,我们想创建一个只包含数学成绩和课程信息的数据框:
new_df = df[['math', 'course']]
print(new_df)
输出:
math course
0 90 math
1 85 english
2 80 science
3 95 math
类似地,我们也可以按行选择创建新的数据框。例如,我们想创建一个只包含第一行和第三行的数据框:
new_df = df.iloc[[0, 2]]
print(new_df)
输出:
name math english science course
0 Alice 90 95 80 math
2 Charlie 80 85 90 science
我们可以通过筛选数据来创建新的数据框。例如,我们要创建一个只包含数学成绩大于 85 的数据框:
new_df = df[df['math'] > 85]
print(new_df)
输出:
name math english science course
0 Alice 90 95 80 math
3 David 95 80 95 math
我们还可以将多个数据框拼接成一个新的数据框。例如,我们有两个数据框 df1 和 df2:
df1 = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'math': [90, 85, 80, 95],
'english': [95, 90, 85, 80],
})
df2 = pd.DataFrame({
'name': ['Ella', 'Frank', 'Grace', 'Henry'],
'math': [75, 80, 85, 90],
'science': [90, 85, 80, 75],
})
我们可以使用 concat 函数将它们拼接起来:
new_df = pd.concat([df1, df2])
print(new_df)
输出:
name math english science
0 Alice 90 95.0 NaN
1 Bob 85 90.0 NaN
2 Charlie 80 85.0 NaN
3 David 95 80.0 NaN
0 Ella 75 NaN 90.0
1 Frank 80 NaN 85.0
2 Grace 85 NaN 80.0
3 Henry 90 NaN 75.0
最后,我们还可以对新数据框进行修改,以满足我们的需求。例如,我们要将新数据框中的空值填充为 0:
new_df = new_df.fillna(0)
print(new_df)
输出:
name math english science
0 Alice 90 95.0 0.0
1 Bob 85 90.0 0.0
2 Charlie 80 85.0 0.0
3 David 95 80.0 0.0
0 Ella 75 0.0 90.0
1 Frank 80 0.0 85.0
2 Grace 85 0.0 80.0
3 Henry 90 0.0 75.0
本文介绍了如何基于现有数据框创建新数据框,并对新数据框进行操作。通过运用这些方法,我们可以轻松地处理和分析数据。