生成Pandas DataFrame有很多种方法,其中一种是通过 Python 字典的方式来生成,可以使用 dict 声明一个字典,字典的 key 就是 DataFrame 的列名,而 key 对应的 value 则是该列的数据。
以下是 Pandas 通过字典生成 DataFrame 的步骤:
- 引入 Pandas 模块:
python
import pandas as pd
- 创建一个字典,key 为列名,value 为该列的数据:
python
data = {'name': ['John', 'Jane', 'Mike', 'Lisa'], 'age': [25, 30, 28, 27], 'city': ['New York', 'Paris', 'Tokyo', 'London']}
- 将字典转化为 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:生成不同数据格式的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 中列可以有不同的数据类型。
- 示例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 并不是所有列的数据类型都是数值类型,但是通过规定需要汇总的列名,还是可以完成这个统计任务的。