生成 DataFrame 是 Pandas 中的一项常见操作。可以通过传递一些数据结构来创建 DataFrame,其中一种创建方法是通过字典生成。下面是 Pandas 通过字典生成 DataFrame 的步骤:
1. 导入 pandas 模块
在 Python 中,首先需要导入 pandas 模块才能使用 DataFrame 等相关的 API。可以使用以下代码来导入:
import pandas as pd
其中 pd
是常用的缩写,方便下面代码的书写。
2. 准备字典数据
通过字典创建 DataFrame 的关键在于构建好字典数据。要创建 DataFrame,需要提供如下形式的字典数据:
- 每个键(key)代表一列。
- 每个值(value)代表对应列的所有元素。
- 每个值(value)的长度相等。
例如我们有如下数据:
data = {
'name': ['Alice', 'Bob', 'Charlie'],
'age': [28, 24, 21],
'gender': ['female', 'male', 'male']
}
每个 key 对应一列,每个 value 是该列对应的所有元素。其中 'name'、'age'、'gender' 是列名,['Alice', 'Bob', 'Charlie']、[28, 24, 21]、['female', 'male', 'male'] 分别是对应列的所有元素。
3. 将字典转换为 DataFrame
使用 pd.DataFrame()
函数即可将字典数据生成 DataFrame,代码如下:
df = pd.DataFrame(data)
其中 df
是我们所生成的 DataFrame。
示例1
我们来看一个具体的代码示例。假设我们有一个表示学生信息的字典,包括学生姓名、年龄、班级三个字段:
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
'age': [20, 21, 22, 23, 24],
'class': ['class 1', 'class 2', 'class 2', 'class 1', 'class 3']
}
我们可以根据这个字典生成一个 DataFrame,代码如下:
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
'age': [20, 21, 22, 23, 24],
'class': ['class 1', 'class 2', 'class 2', 'class 1', 'class 3']
}
df = pd.DataFrame(data)
print(df)
运行结果如下:
name age class
0 Alice 20 class 1
1 Bob 21 class 2
2 Charlie 22 class 2
3 David 23 class 1
4 Eva 24 class 3
可以看到,生成的 DataFrame 就是字典中的数据按照列名形式组合而来。
示例2
我们可以通过改变字典数据的顺序来改变 DataFrame 的列的顺序,也可以通过 columns
参数指定列的顺序。以下面这个数据为例:
data = {
'name': ['Alice', 'Bob', 'Charlie'],
'age': [28, 24, 21],
'gender': ['female', 'male', 'male']
}
如果想将 age 列排列在最前面,可以先将字典中 age 列提前,然后再将整个字典数据传入 pd.DataFrame()
中生成 DataFrame,代码如下:
import pandas as pd
data = {
'age': [28, 24, 21], # 将需要排列在最前面的列提前
'name': ['Alice', 'Bob', 'Charlie'],
'gender': ['female', 'male', 'male']
}
df = pd.DataFrame(data)
print(df)
运行结果如下:
age name gender
0 28 Alice female
1 24 Bob male
2 21 Charlie male
另外,也可以通过 columns
参数指定需要生成的列名顺序。代码如下:
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie'],
'age': [28, 24, 21],
'gender': ['female', 'male', 'male']
}
columns = ['age', 'gender', 'name'] # 指定列名顺序
df = pd.DataFrame(data, columns=columns)
print(df)
运行结果如下:
age gender name
0 28 female Alice
1 24 male Bob
2 21 male Charlie
可以看到,指定了列名顺序之后,生成的 DataFrame 的列名就按照指定的顺序排列了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas通过字典生成dataframe的方法步骤 - Python技术站