Python 从 narray/lists 的 dict 创建 DataFrame

  • Post category:Python

一、引言

在Python数据分析过程中,数据的转换与处理是必不可少的步骤。在处理过程中,使用Pandas这个Python数据处理库通常是一个很好的选择。Pandas主要有两个数据结构——Series和DataFrame。在本文中,我们将重点讲解如何使用Python中的narray/Lists、dict来创建DataFrame。

二、使用narray创建DataFrame

  1. 从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
  1. 从多维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

  1. 从字典创建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
  1. 处理字典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数据结构。