pandas通过字典生成dataframe的方法步骤

  • Post category:Python

生成Pandas DataFrame有很多种方法,其中一种是通过 Python 字典的方式来生成,可以使用 dict 声明一个字典,字典的 key 就是 DataFrame 的列名,而 key 对应的 value 则是该列的数据。

以下是 Pandas 通过字典生成 DataFrame 的步骤:

  1. 引入 Pandas 模块:

python
import pandas as pd

  1. 创建一个字典,key 为列名,value 为该列的数据:

python
data = {'name': ['John', 'Jane', 'Mike', 'Lisa'], 'age': [25, 30, 28, 27], 'city': ['New York', 'Paris', 'Tokyo', 'London']}

  1. 将字典转化为 DataFrame:

python
df = pd.DataFrame(data)

通过上述三个步骤,就可以成功生成一个包含三列数据的 DataFrame,其中列名和数据分别为:

name age city
0 John 25 New York
1 Jane 30 Paris
2 Mike 28 Tokyo
3 Lisa 27 London

以下是更加详细的示例说明:

  1. 示例1:生成不同数据格式的DataFrame

python
data = {'name': ['John', 'Jane', 'Mike', 'Lisa'],
'age': [25, 30, 28, 27],
'height': [1.80, 1.65, 1.75, 1.68],
'gender': ['M', 'F', 'M', 'F']}
df = pd.DataFrame(data)
print(df)

输出:

name age height gender
0 John 25 1.80 M
1 Jane 30 1.65 F
2 Mike 28 1.75 M
3 Lisa 27 1.68 F

可以看到这个示例中的数据字典有四个 key 分别对应姓名、年龄、身高和性别信息,对应的 value 列表分别是字符串、整数、浮点数和字符串。这里同一个 DataFrame 中列可以有不同的数据类型。

  1. 示例2:加深对汇总统计函数的理解

python
sales = {'fruit': ['apple', 'orange', 'banana', 'apple', 'apple', 'banana', 'orange', 'banana', 'orange', 'apple', 'orange', 'banana'],
'Retailer': ['Walmart', 'Walmart', 'Walmart', 'Target', 'Target', 'Target', 'Kroger', 'Kroger', 'Kroger', 'Publix', 'Publix', 'Publix'],
'quantity': [1, 2, 3, 5, 1, 2, 4, 6, 10, 3, 8, 12],
'price': [0.50, 0.75, 0.25, 0.60, 0.65, 0.70, 0.50, 0.80, 0.75, 0.60, 0.50, 0.40]}
df = pd.DataFrame(sales)
print(df.groupby(['Retailer'])['quantity', 'price'].sum())

输出:

quantity price
Kroger 20 2.05
Publix 23 1.5
Target 8 1.95
Walmart 6 1.5

这个示例中的数据字典描述了水果的销售量,销售商和单价信息,然后使用 groupby() 函数,对销售商进行分类汇总,统计销售量和销售额。该示例中的 DataFrame 并不是所有列的数据类型都是数值类型,但是通过规定需要汇总的列名,还是可以完成这个统计任务的。