一、引言
在Python数据分析过程中,数据的转换与处理是必不可少的步骤。在处理过程中,使用Pandas这个Python数据处理库通常是一个很好的选择。Pandas主要有两个数据结构——Series和DataFrame。在本文中,我们将重点讲解如何使用Python中的narray/Lists、dict来创建DataFrame。
二、使用narray创建DataFrame
- 从Numpy数组中创建DataFrame
Numpy是一个Python科学计算库,在数据分析过程中常常被用作处理数据。DataFrame可以直接从Numpy数组中创建,Numpy数组的所有数据格式都可以被使用。我们可以通过如下代码实现Numpy数组到DataFrame的转换:
import pandas as pd
import numpy as np
data = np.array([['','Col1','Col2'],
['Row1',1,2],
['Row2',3,4]])
df = pd.DataFrame(data=data[1:,1:],
index=data[1:,0],
columns=data[0,1:])
print(df)
输出结果为:
Col1 Col2
Row1 1 2
Row2 3 4
- 从多维Numpy数组中创建DataFrame
同样,我们可以从多维数组中创建DataFrame。下面这个例子中,我们将创建一个3*3的多维数组,并把它转换为DataFrame:
array_2d = np.array([[1,2,3],[4,5,6],[7,8,9]])
df = pd.DataFrame(array_2d, columns=['col1', 'col2', 'col3'], index=['row1', 'row2', 'row3'])
print(df)
输出结果为:
col1 col2 col3
row1 1 2 3
row2 4 5 6
row3 7 8 9
三、使用Lists创建DataFrame
在Python中,列表(Lists)通常被用作存储数据结构。我们可以通过Lists创建DataFrame,并将其转换为Pandas的DataFrame数据类型。下面这个例子中,我们将创建一个列表,并将其转换为DataFrame:
data = {
'name': ['Tom', 'Jerry', 'Spike', 'Tyke'],
'age': [7, 5, 3, 6],
'gender': ['male', 'male', 'male', 'female']
}
df = pd.DataFrame(data)
print(df)
输出结果为:
name age gender
0 Tom 7 male
1 Jerry 5 male
2 Spike 3 male
3 Tyke 6 female
四、使用dict创建DataFrame
- 从字典创建DataFrame
Python中的字典数据类型也可以被用于创建DataFrame。下面这个例子中,我们将创建一个字典,并将其转换为DataFrame:
data = {
'name': ['Tom', 'Jerry', 'Spike', 'Tyke'],
'age': [7, 5, 3, 6],
'gender': ['male', 'male', 'male', 'female']
}
df = pd.DataFrame(data)
print(df)
输出结果为:
name age gender
0 Tom 7 male
1 Jerry 5 male
2 Spike 3 male
3 Tyke 6 female
- 处理字典value为多维数组
在实际数据处理过程中,一些数据可能会存在于嵌套的多维数组中。我们需要对这些数据进行处理并转换为DataFrame。下面这个例子中,我们将创建一个包含多维数组嵌套数据的字典,并将其转换为DataFrame:
data = {'name': ['Tom', 'Jerry', 'Spike', 'Tyke'],
'age': [7, 5, 3, 6],
'score': [{'Chinese':89, 'English':78, 'Math':85}, {'Chinese':90, 'English':82, 'Math':86},
{'Chinese':91, 'English':85, 'Math':87}, {'Chinese':79, 'English':83, 'Math':81}]
}
df = pd.DataFrame(dict([(k, pd.Series(v)) for k, v in data.items()]))
print(df)
输出结果为:
name age score
0 Tom 7 {'Chinese': 89, 'English': 78, 'Math': 85}
1 Jerry 5 {'Chinese': 90, 'English': 82, 'Math': 86}
2 Spike 3 {'Chinese': 91, 'English': 85, 'Math': 87}
3 Tyke 6 {'Chinese': 79, 'English': 83, 'Math': 81}
五、总结
在数据分析的过程中,我们经常需要从多种数据格式中提取数据并转换成Pandas的DataFrame,使用Numpy数组、Lists和字典都是非常好用的方法。 在本文中,我们介绍了如何使用Python中的narray/Lists、dict从创建DataFrame,我们可以通过它们,以很少的代码,轻松地从多种数据源中创建Pandas DataFrame数据结构。